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
17
third_party/bazel/rules_haskell/tests/external-haskell-repository/BUILD.bazel
vendored
Normal file
17
third_party/bazel/rules_haskell/tests/external-haskell-repository/BUILD.bazel
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
# Tests correct linking of haskell packages that were created
|
||||
# in a different bazel repository, e.g. with hazel.
|
||||
|
||||
load(
|
||||
"@io_tweag_rules_haskell//haskell:haskell.bzl",
|
||||
"haskell_test",
|
||||
)
|
||||
|
||||
haskell_test(
|
||||
name = "external-haskell-repository",
|
||||
srcs = ["Main.hs"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//tests/hackage:base",
|
||||
"@haskell_package_repository_dummy//:library-with-cbits",
|
||||
],
|
||||
)
|
||||
6
third_party/bazel/rules_haskell/tests/external-haskell-repository/Main.hs
vendored
Normal file
6
third_party/bazel/rules_haskell/tests/external-haskell-repository/Main.hs
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
module Main where
|
||||
|
||||
import AddOne
|
||||
import Control.Exception (assert)
|
||||
|
||||
main = assert (addOne 41 == 42) $ return ()
|
||||
64
third_party/bazel/rules_haskell/tests/external-haskell-repository/workspace_dummy.bzl
vendored
Normal file
64
third_party/bazel/rules_haskell/tests/external-haskell-repository/workspace_dummy.bzl
vendored
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
# This file constructs a dummy workspace to test
|
||||
# haskell binaries that are included from outside repositories
|
||||
# (because linking external repositories works differently).
|
||||
|
||||
# Repo-ception, in the sense that we build a WORKSPACE
|
||||
# that references the workspaces already set up in the
|
||||
# `rules_haskell` WORKSPACE.
|
||||
def _haskell_package_repository_dummy_impl(rep_ctx):
|
||||
rep_ctx.file(
|
||||
"WORKSPACE",
|
||||
executable = False,
|
||||
content = """
|
||||
repository(name={name})
|
||||
|
||||
register_toolchains(
|
||||
"@io_tweag_rules_haskell//tests/:ghc"
|
||||
)
|
||||
""".format(name = rep_ctx.name),
|
||||
)
|
||||
|
||||
# this mirrors tests/library-with-cbits
|
||||
|
||||
rep_ctx.file(
|
||||
"BUILD",
|
||||
executable = False,
|
||||
content = """
|
||||
load(
|
||||
"@io_tweag_rules_haskell//haskell:haskell.bzl",
|
||||
"haskell_toolchain",
|
||||
"haskell_library",
|
||||
)
|
||||
load(
|
||||
"@io_tweag_rules_haskell//:constants.bzl",
|
||||
"test_ghc_version",
|
||||
)
|
||||
|
||||
haskell_library(
|
||||
name = "library-with-cbits",
|
||||
srcs = ["AddOne.hs"],
|
||||
deps = [
|
||||
"@io_tweag_rules_haskell//tests/data:ourclibrary",
|
||||
"@io_tweag_rules_haskell//tests/hackage:base",
|
||||
],
|
||||
|
||||
linkstatic = False,
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
""",
|
||||
)
|
||||
|
||||
rep_ctx.file(
|
||||
"AddOne.hs",
|
||||
executable = False,
|
||||
content = """
|
||||
module AddOne where
|
||||
|
||||
foreign import ccall "c_add_one" addOne :: Int -> Int
|
||||
""",
|
||||
)
|
||||
|
||||
haskell_package_repository_dummy = repository_rule(
|
||||
_haskell_package_repository_dummy_impl,
|
||||
local = True,
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue