86 lines
1.9 KiB
Text
86 lines
1.9 KiB
Text
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",
|
|
],
|
|
)
|