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
53
third_party/bazel/rules_haskell/tests/binary-with-plugin/BUILD.bazel
vendored
Normal file
53
third_party/bazel/rules_haskell/tests/binary-with-plugin/BUILD.bazel
vendored
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
load(
|
||||
"@io_tweag_rules_haskell//haskell:haskell.bzl",
|
||||
"ghc_plugin",
|
||||
"haskell_library",
|
||||
"haskell_test",
|
||||
"haskell_toolchain_library",
|
||||
)
|
||||
|
||||
package(default_testonly = 1)
|
||||
|
||||
config_setting(
|
||||
name = "debug_build",
|
||||
values = {
|
||||
"compilation_mode": "dbg",
|
||||
},
|
||||
)
|
||||
|
||||
haskell_toolchain_library(name = "base")
|
||||
|
||||
haskell_toolchain_library(name = "ghc")
|
||||
|
||||
haskell_toolchain_library(name = "process")
|
||||
|
||||
haskell_library(
|
||||
name = "plugin-lib",
|
||||
srcs = ["Plugin.hs"],
|
||||
deps = [
|
||||
":base",
|
||||
":ghc",
|
||||
":process",
|
||||
],
|
||||
)
|
||||
|
||||
ghc_plugin(
|
||||
name = "plugin",
|
||||
args = ["$(location //tests/binary-simple)"],
|
||||
module = "Plugin",
|
||||
tools = ["//tests/binary-simple"],
|
||||
deps = [":plugin-lib"],
|
||||
)
|
||||
|
||||
haskell_test(
|
||||
name = "binary-with-plugin",
|
||||
srcs = ["Main.hs"],
|
||||
plugins = select({
|
||||
# XXX If profiling is enabled, ignore the plugin because of
|
||||
# https://gitlab.haskell.org/ghc/ghc/issues/14335.
|
||||
":debug_build": [],
|
||||
"//conditions:default": [":plugin"],
|
||||
}),
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [":base"],
|
||||
)
|
||||
3
third_party/bazel/rules_haskell/tests/binary-with-plugin/Main.hs
vendored
Normal file
3
third_party/bazel/rules_haskell/tests/binary-with-plugin/Main.hs
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
module Main where
|
||||
|
||||
main = putStrLn "hello world"
|
||||
15
third_party/bazel/rules_haskell/tests/binary-with-plugin/Plugin.hs
vendored
Normal file
15
third_party/bazel/rules_haskell/tests/binary-with-plugin/Plugin.hs
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
module Plugin (plugin) where
|
||||
|
||||
import Control.Monad (when)
|
||||
import GhcPlugins
|
||||
import System.Process (readProcess)
|
||||
|
||||
plugin :: Plugin
|
||||
plugin = defaultPlugin { installCoreToDos = install }
|
||||
|
||||
install :: [CommandLineOption] -> [CoreToDo] -> CoreM [CoreToDo]
|
||||
install [arg] todo = do
|
||||
when ('$' `elem` arg) $
|
||||
fail "Make variable not expanded."
|
||||
_ <- liftIO $ readProcess arg [] ""
|
||||
return todo
|
||||
Loading…
Add table
Add a link
Reference in a new issue