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,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",
],
)

View 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

View 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

View 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

View file

@ -0,0 +1,9 @@
module Main where
import qualified HscLib
import qualified HsLib
main :: IO ()
main = do
HscLib.check
HsLib.check

View file

@ -0,0 +1,7 @@
module Main where
import qualified C2hsLib
main :: IO ()
main = do
C2hsLib.check

View file

@ -0,0 +1 @@
module VersionedLib where