feat(third_party/bazel): Check in rules_haskell from Tweag

This commit is contained in:
Vincent Ambo 2019-07-04 11:18:12 +01:00
parent 2eb1dc26e4
commit f723b8b878
479 changed files with 51484 additions and 0 deletions

View file

@ -0,0 +1,44 @@
load(
"@io_tweag_rules_haskell//haskell:haskell.bzl",
"haskell_library",
"haskell_test",
)
package(default_testonly = 1)
haskell_library(
name = "extra-source-files",
srcs = [
"Foo.hs",
"FooTH.hs",
],
# Test that the linker can also see the extra_srcs.
compiler_flags = ["-optl-Wl,@tests/extra-source-files/ld-options.txt"],
extra_srcs = [
"file.txt",
"ld-options.txt",
],
deps = [
"//tests/hackage:base",
"//tests/hackage:template-haskell",
],
)
haskell_test(
name = "extra-source-files-bin",
srcs = [
"Foo.hs",
"FooTH.hs",
"Main.hs",
],
# Test that the linker can also see the extra_srcs.
compiler_flags = ["-optl-Wl,@tests/extra-source-files/ld-options.txt"],
extra_srcs = [
"file.txt",
"ld-options.txt",
],
deps = [
"//tests/hackage:base",
"//tests/hackage:template-haskell",
],
)

View file

@ -0,0 +1,8 @@
{-# LANGUAGE TemplateHaskell #-}
module Foo (foo) where
import FooTH (embedFile)
foo :: String
foo = $(embedFile "tests/extra-source-files/file.txt") ++ "!"

View file

@ -0,0 +1,12 @@
{-# LANGUAGE TemplateHaskell #-}
module FooTH (embedFile) where
import Language.Haskell.TH
import Language.Haskell.TH.Syntax
embedFile :: FilePath -> Q Exp
embedFile path = do
str <- runIO (readFile path)
addDependentFile path
[| str |]

View file

@ -0,0 +1,4 @@
import Foo (foo)
main :: IO ()
main = putStrLn foo

View file

@ -0,0 +1 @@
And here we go