Slide 13
Slide 13 text
ୈ 1 ষ Elm + Haskell Ͱ࡞Δ Web ΞϓϦ with Bazel 1.3 Elm + Haskell + Bazel Ͱ࡞Δ
rules_haskell ͰɺMain ίʔυΛϏϧυͯ͠όΠφϦΛੜ͢ΔͨΊͷ haskell_binary ϧʔ
ϧͱʮͦͷ΄͔ Haskell ιʔείʔυʯΛύοέʔδͱͯ͠Ϗϧυ͢ΔͨΊͷ haskell_library
ϧʔϧ͕͋Γ·͢ɻ
load("@rules_haskell//haskell:defs.bzl", "haskell_library", "haskell_binary")
haskell_library(
name = "salary-graph-library",
src_strip_prefix = "src",
srcs = glob(["src/**/*.hs"]),
deps = [
"@stackage//:aeson",
"@stackage//:base",
"@stackage//:bytestring",
...
],
)
haskell_binary(
name = "salary-graph",
srcs = glob(["app/server/**/*.hs"]),
deps = [
":salary-graph-library",
"@stackage//:base",
"@stackage//:servant-server",
"@stackage//:warp",
],
)
͜ΕͰɺbazel build //:salary-graph Ͱ Haskell ϓϩάϥϜͷϏϧυ͕Ͱ͖ΔΑ͏ʹͳΓ·
ͨ͠ɻ
ίϯύΠϧϑϥά
Haskell ϓϩάϥϜΛϏϧυ͢Δͱ͖ʹίϯύΠϧϑϥάΛ͢͜ͱ͕ଟ͍Ͱ͢ɻrules_haskell
ͷ߹ compiler_flags ҾͰࢦఆ͠·͢ɻ·ͨɺຖճྻڍ͢Δͷ͍ͨΜͰ͢ͷͰɺมʹ
͓ͯ͘͠ͱศརͰ͢ɻ
GHC_FLAGS = [
"-Wall",
"-Wcompat",
"-optP-Wno-nonportable-include-path",
"-DBAZEL_BUILD=1",
"-XGHC2021",
"-XDataKinds",
"-XNoFieldSelectors",
6