feat(third_party/bazel): Check in rules_haskell from Tweag
This commit is contained in:
parent
2eb1dc26e4
commit
f723b8b878
479 changed files with 51484 additions and 0 deletions
86
third_party/bazel/rules_haskell/tests/library-with-sysincludes/BUILD.bazel
vendored
Normal file
86
third_party/bazel/rules_haskell/tests/library-with-sysincludes/BUILD.bazel
vendored
Normal file
|
|
@ -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",
|
||||
],
|
||||
)
|
||||
15
third_party/bazel/rules_haskell/tests/library-with-sysincludes/IntLib.hsc
vendored
Normal file
15
third_party/bazel/rules_haskell/tests/library-with-sysincludes/IntLib.hsc
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{-# LANGUAGE CPP #-}
|
||||
|
||||
module IntLib (crc) where
|
||||
|
||||
import Foreign.Ptr
|
||||
import Foreign.C.Types
|
||||
|
||||
#include <zlib.h>
|
||||
#include "foo.h"
|
||||
|
||||
foreign import ccall crc32 :: CLong -> Ptr () -> CInt -> IO ()
|
||||
|
||||
crc = crc32 0 nullPtr 0
|
||||
|
||||
z = #{size struct gz_header_s}
|
||||
8
third_party/bazel/rules_haskell/tests/library-with-sysincludes/Lib.hs
vendored
Normal file
8
third_party/bazel/rules_haskell/tests/library-with-sysincludes/Lib.hs
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{-# LANGUAGE TemplateHaskell #-}
|
||||
|
||||
module Lib (bar) where
|
||||
|
||||
import TH (foo)
|
||||
|
||||
bar :: IO ()
|
||||
bar = $foo
|
||||
9
third_party/bazel/rules_haskell/tests/library-with-sysincludes/TH.hs
vendored
Normal file
9
third_party/bazel/rules_haskell/tests/library-with-sysincludes/TH.hs
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{-# LANGUAGE TemplateHaskell #-}
|
||||
|
||||
module TH (foo) where
|
||||
|
||||
import IntLib (crc)
|
||||
import Language.Haskell.TH
|
||||
|
||||
foo :: Q Exp
|
||||
foo = [| crc |]
|
||||
Loading…
Add table
Add a link
Reference in a new issue