about summary refs log tree commit diff
path: root/third_party/bazel/rules_haskell/tests/version-macros/HscLib.hsc
blob: 387e73a08997c7511b4c107e8c8a20f9202b0b48 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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