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
59
third_party/bazel/rules_haskell/tests/version-macros/BUILD.bazel
vendored
Normal file
59
third_party/bazel/rules_haskell/tests/version-macros/BUILD.bazel
vendored
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
load(
|
||||
"@io_tweag_rules_haskell//haskell:haskell.bzl",
|
||||
"haskell_library",
|
||||
"haskell_test",
|
||||
)
|
||||
load(
|
||||
"@io_tweag_rules_haskell//haskell:c2hs.bzl",
|
||||
"c2hs_library",
|
||||
)
|
||||
|
||||
package(default_testonly = 1)
|
||||
|
||||
haskell_library(
|
||||
name = "versioned-lib",
|
||||
srcs = ["VersionedLib.hs"],
|
||||
version = "1.2.3.4",
|
||||
deps = ["//tests/hackage:base"],
|
||||
)
|
||||
|
||||
haskell_test(
|
||||
name = "version_macros",
|
||||
size = "small",
|
||||
srcs = [
|
||||
"HsLib.hs",
|
||||
"HscLib.hsc",
|
||||
"Main.hs",
|
||||
],
|
||||
version = "3.4.5.6",
|
||||
deps = [
|
||||
":versioned-lib",
|
||||
"//tests/hackage:base",
|
||||
],
|
||||
)
|
||||
|
||||
c2hs_library(
|
||||
name = "c2hs-lib",
|
||||
srcs = ["C2hsLib.chs"],
|
||||
tags = ["requires_c2hs"],
|
||||
version = "4.5.6.7",
|
||||
deps = [
|
||||
":versioned-lib",
|
||||
"//tests/hackage:base",
|
||||
],
|
||||
)
|
||||
|
||||
haskell_test(
|
||||
name = "version_macros_c2hs",
|
||||
size = "small",
|
||||
srcs = [
|
||||
"MainC2hs.hs",
|
||||
":c2hs-lib",
|
||||
],
|
||||
tags = ["requires_c2hs"],
|
||||
version = "4.5.6.7",
|
||||
deps = [
|
||||
":versioned-lib",
|
||||
"//tests/hackage:base",
|
||||
],
|
||||
)
|
||||
44
third_party/bazel/rules_haskell/tests/version-macros/C2hsLib.chs
vendored
Normal file
44
third_party/bazel/rules_haskell/tests/version-macros/C2hsLib.chs
vendored
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
module C2hsLib where
|
||||
|
||||
import Control.Monad (unless)
|
||||
|
||||
check_version_versioned_lib :: IO ()
|
||||
#ifndef VERSION_versioned_lib
|
||||
check_version_versioned_lib = fail "c2hs: VERSION_versioned_lib missing"
|
||||
#else
|
||||
check_version_versioned_lib =
|
||||
unless ({#const VERSION_versioned_lib#} == "1.2.3.4") $
|
||||
fail "c2hs: VERSION_versioned_lib invalid"
|
||||
#endif
|
||||
|
||||
check_min_version_versioned_lib :: IO ()
|
||||
#ifndef MIN_VERSION_versioned_lib
|
||||
check_min_version_versioned_lib = fail "c2hs: MIN_VERSION_versioned_lib missing"
|
||||
#elif !MIN_VERSION_versioned_lib(1,2,3)
|
||||
check_min_version_versioned_lib = fail "c2hs: MIN_VERSION_versioned_lib invalid"
|
||||
#else
|
||||
check_min_version_versioned_lib = pure ()
|
||||
#endif
|
||||
|
||||
check_version_base :: IO ()
|
||||
#ifndef VERSION_base
|
||||
check_version_base = fail "c2hs: VERSION_base missing"
|
||||
#else
|
||||
check_version_base = pure ()
|
||||
#endif
|
||||
|
||||
check_min_version_base :: IO ()
|
||||
#ifndef MIN_VERSION_base
|
||||
check_min_version_base = fail "c2hs: MIN_VERSION_base missing"
|
||||
#elif !MIN_VERSION_base(0,0,0)
|
||||
check_min_version_base = fail "c2hs: MIN_VERSION_base invalid"
|
||||
#else
|
||||
check_min_version_base = pure ()
|
||||
#endif
|
||||
|
||||
check :: IO ()
|
||||
check = do
|
||||
check_version_versioned_lib
|
||||
check_min_version_versioned_lib
|
||||
check_version_base
|
||||
check_min_version_base
|
||||
46
third_party/bazel/rules_haskell/tests/version-macros/HsLib.hs
vendored
Normal file
46
third_party/bazel/rules_haskell/tests/version-macros/HsLib.hs
vendored
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{-# LANGUAGE CPP #-}
|
||||
|
||||
module HsLib where
|
||||
|
||||
import Control.Monad (unless)
|
||||
|
||||
check_version_versioned_lib :: IO ()
|
||||
#ifndef VERSION_versioned_lib
|
||||
check_version_versioned_lib = fail "hs: VERSION_versioned_lib missing"
|
||||
#else
|
||||
check_version_versioned_lib =
|
||||
unless (VERSION_versioned_lib == "1.2.3.4") $
|
||||
fail "hs: VERSION_versioned_lib invalid"
|
||||
#endif
|
||||
|
||||
check_min_version_versioned_lib :: IO ()
|
||||
#ifndef MIN_VERSION_versioned_lib
|
||||
check_min_version_versioned_lib = fail "hs: MIN_VERSION_versioned_lib missing"
|
||||
#elif !MIN_VERSION_versioned_lib(1,2,3)
|
||||
check_min_version_versioned_lib = fail "hs: MIN_VERSION_versioned_lib invalid"
|
||||
#else
|
||||
check_min_version_versioned_lib = pure ()
|
||||
#endif
|
||||
|
||||
check_version_base :: IO ()
|
||||
#ifndef VERSION_base
|
||||
check_version_base = fail "hs: VERSION_base missing"
|
||||
#else
|
||||
check_version_base = pure ()
|
||||
#endif
|
||||
|
||||
check_min_version_base :: IO ()
|
||||
#ifndef MIN_VERSION_base
|
||||
check_min_version_base = fail "hs: MIN_VERSION_base missing"
|
||||
#elif !MIN_VERSION_base(0,0,0)
|
||||
check_min_version_base = fail "hs: MIN_VERSION_base invalid"
|
||||
#else
|
||||
check_min_version_base = pure ()
|
||||
#endif
|
||||
|
||||
check :: IO ()
|
||||
check = do
|
||||
check_version_versioned_lib
|
||||
check_min_version_versioned_lib
|
||||
check_version_base
|
||||
check_min_version_base
|
||||
44
third_party/bazel/rules_haskell/tests/version-macros/HscLib.hsc
vendored
Normal file
44
third_party/bazel/rules_haskell/tests/version-macros/HscLib.hsc
vendored
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
module HscLib where
|
||||
|
||||
import Control.Monad (unless)
|
||||
|
||||
check_version_versioned_lib :: IO ()
|
||||
#ifndef VERSION_versioned_lib
|
||||
check_version_versioned_lib = fail "hsc2hs: VERSION_versioned_lib missing"
|
||||
#else
|
||||
check_version_versioned_lib =
|
||||
unless (#{const_str VERSION_versioned_lib} == "1.2.3.4") $
|
||||
fail "hsc2hs: VERSION_versioned_lib invalid"
|
||||
#endif
|
||||
|
||||
check_min_version_versioned_lib :: IO ()
|
||||
#ifndef MIN_VERSION_versioned_lib
|
||||
check_min_version_versioned_lib = fail "hsc2hs: MIN_VERSION_versioned_lib missing"
|
||||
#elif !MIN_VERSION_versioned_lib(1,2,3)
|
||||
check_min_version_versioned_lib = fail "hsc2hs: MIN_VERSION_versioned_lib invalid"
|
||||
#else
|
||||
check_min_version_versioned_lib = pure ()
|
||||
#endif
|
||||
|
||||
check_version_base :: IO ()
|
||||
#ifndef VERSION_base
|
||||
check_version_base = fail "hsc2hs: VERSION_base missing"
|
||||
#else
|
||||
check_version_base = pure ()
|
||||
#endif
|
||||
|
||||
check_min_version_base :: IO ()
|
||||
#ifndef MIN_VERSION_base
|
||||
check_min_version_base = fail "hsc2hs: MIN_VERSION_base missing"
|
||||
#elif !MIN_VERSION_base(0,0,0)
|
||||
check_min_version_base = fail "hsc2hs: MIN_VERSION_base invalid"
|
||||
#else
|
||||
check_min_version_base = pure ()
|
||||
#endif
|
||||
|
||||
check :: IO ()
|
||||
check = do
|
||||
check_version_versioned_lib
|
||||
check_min_version_versioned_lib
|
||||
check_version_base
|
||||
check_min_version_base
|
||||
9
third_party/bazel/rules_haskell/tests/version-macros/Main.hs
vendored
Normal file
9
third_party/bazel/rules_haskell/tests/version-macros/Main.hs
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
module Main where
|
||||
|
||||
import qualified HscLib
|
||||
import qualified HsLib
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
HscLib.check
|
||||
HsLib.check
|
||||
7
third_party/bazel/rules_haskell/tests/version-macros/MainC2hs.hs
vendored
Normal file
7
third_party/bazel/rules_haskell/tests/version-macros/MainC2hs.hs
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
module Main where
|
||||
|
||||
import qualified C2hsLib
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
C2hsLib.check
|
||||
1
third_party/bazel/rules_haskell/tests/version-macros/VersionedLib.hs
vendored
Normal file
1
third_party/bazel/rules_haskell/tests/version-macros/VersionedLib.hs
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
module VersionedLib where
|
||||
Loading…
Add table
Add a link
Reference in a new issue