diff options
Diffstat (limited to 'third_party/bazel/rules_haskell/tests/c2hs')
6 files changed, 65 insertions, 0 deletions
diff --git a/third_party/bazel/rules_haskell/tests/c2hs/BUILD.bazel b/third_party/bazel/rules_haskell/tests/c2hs/BUILD.bazel new file mode 100644 index 000000000000..a343c55f57fc --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/c2hs/BUILD.bazel @@ -0,0 +1,36 @@ +load("@io_tweag_rules_haskell//haskell:c2hs.bzl", "c2hs_library") +load( + "@io_tweag_rules_haskell//haskell:haskell.bzl", + "haskell_library", +) + +package(default_testonly = 1) + +c2hs_library( + name = "foo", + srcs = ["src/Foo/Foo.chs"], + src_strip_prefix = "src", + tags = [ + "requires_c2hs", + "requires_zlib", + ], + deps = ["@zlib.dev//:zlib"], +) + +c2hs_library( + name = "bar", + srcs = ["Bar.chs"], + tags = ["requires_c2hs"], + deps = [":foo"], +) + +haskell_library( + name = "c2hs", + srcs = [ + ":bar", + ":foo", + "@c2hs_repo//:baz", + ], + tags = ["requires_c2hs"], + deps = ["//tests/hackage:base"], +) diff --git a/third_party/bazel/rules_haskell/tests/c2hs/Bar.chs b/third_party/bazel/rules_haskell/tests/c2hs/Bar.chs new file mode 100644 index 000000000000..1de32c1ccb3b --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/c2hs/Bar.chs @@ -0,0 +1,6 @@ +module Bar (bar) where + +{#import Foo.Foo#} + +bar :: Int +bar = 6 diff --git a/third_party/bazel/rules_haskell/tests/c2hs/repo/BUILD.bazel b/third_party/bazel/rules_haskell/tests/c2hs/repo/BUILD.bazel new file mode 100644 index 000000000000..4f1d15c09a6f --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/c2hs/repo/BUILD.bazel @@ -0,0 +1,10 @@ +load("@io_tweag_rules_haskell//haskell:c2hs.bzl", "c2hs_library") + +package(default_testonly = 1) + +c2hs_library( + name = "baz", + srcs = ["Baz.chs"], + visibility = ["//visibility:public"], + deps = ["@zlib.dev//:zlib"], +) diff --git a/third_party/bazel/rules_haskell/tests/c2hs/repo/Baz.chs b/third_party/bazel/rules_haskell/tests/c2hs/repo/Baz.chs new file mode 100644 index 000000000000..b6d74dfc4ea8 --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/c2hs/repo/Baz.chs @@ -0,0 +1,6 @@ +module Baz (baz) where + +#include <zlib.h> + +baz :: Int +baz = {# sizeof gz_header_s #} diff --git a/third_party/bazel/rules_haskell/tests/c2hs/repo/WORKSPACE b/third_party/bazel/rules_haskell/tests/c2hs/repo/WORKSPACE new file mode 100644 index 000000000000..e53539f0b46c --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/c2hs/repo/WORKSPACE @@ -0,0 +1 @@ +workspace(name = "c2hs_repo") diff --git a/third_party/bazel/rules_haskell/tests/c2hs/src/Foo/Foo.chs b/third_party/bazel/rules_haskell/tests/c2hs/src/Foo/Foo.chs new file mode 100644 index 000000000000..244f3b2b29ff --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/c2hs/src/Foo/Foo.chs @@ -0,0 +1,6 @@ +module Foo.Foo (foo) where + +#include <zlib.h> + +foo :: Int +foo = {# sizeof gz_header_s #} |