diff options
Diffstat (limited to 'third_party/bazel/rules_haskell/tests/library-with-sysincludes/BUILD.bazel')
-rw-r--r-- | third_party/bazel/rules_haskell/tests/library-with-sysincludes/BUILD.bazel | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/third_party/bazel/rules_haskell/tests/library-with-sysincludes/BUILD.bazel b/third_party/bazel/rules_haskell/tests/library-with-sysincludes/BUILD.bazel new file mode 100644 index 000000000000..ddd5de65198c --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/library-with-sysincludes/BUILD.bazel @@ -0,0 +1,86 @@ +load( + "@io_tweag_rules_haskell//haskell:haskell.bzl", + "haskell_library", +) + +package(default_testonly = 1) + +genrule( + name = "genrule-header", + outs = [ + "include/foo.h", + ], + cmd = "touch $(location include/foo.h)", +) + +# A locally-defined replica of @zlib.dev//:zlib. +# Since that shared library lives in another package, we must +# use an absolute path for strip_include_prefix. +cc_library( + name = "zlib", + hdrs = ["@zlib.dev//:include"], + strip_include_prefix = "/external/zlib.dev/include", + tags = ["requires_zlib"], + deps = ["@zlib"], +) + +cc_library( + name = "zlib-with-genrule-header", + hdrs = [":genrule-header"], + strip_include_prefix = "include", + tags = ["requires_zlib"], +) + +haskell_library( + name = "intermediate-library", + srcs = ["IntLib.hsc"], + tags = ["requires_zlib"], + deps = [ + ":zlib", + ":zlib-with-genrule-header", + "//tests/hackage:base", + ], +) + +haskell_library( + name = "library-with-sysincludes", + srcs = [ + "Lib.hs", + "TH.hs", + ], + tags = ["requires_zlib"], + visibility = ["//visibility:public"], + deps = [ + ":intermediate-library", + "//tests/hackage:base", + "//tests/hackage:template-haskell", + ], +) + +# Replicate the above example, but use the externally-defined +# cc_library rule. +haskell_library( + name = "intermediate-library-other", + srcs = ["IntLib.hsc"], + tags = ["requires_zlib"], + deps = [ + ":zlib-with-genrule-header", + "//tests/hackage:base", + "@zlib.dev//:zlib", + ], +) + +haskell_library( + name = "library-with-sysincludes-other", + srcs = [ + "Lib.hs", + "TH.hs", + ], + tags = ["requires_zlib"], + visibility = ["//visibility:public"], + deps = [ + ":intermediate-library-other", + "//tests/hackage:base", + "//tests/hackage:template-haskell", + ], +) |