File: libBF.cabal

package info (click to toggle)
haskell-libbf 0.6.8-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 416 kB
  • sloc: ansic: 8,232; haskell: 337; makefile: 6
file content (90 lines) | stat: -rw-r--r-- 2,503 bytes parent folder | download
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
cabal-version:       2.2

name:                libBF
version:             0.6.8
synopsis:            A binding to the libBF library.
description:         LibBF is a C library for working with arbitray precision
                     IEEE 754 floating point numbers.
bug-reports:         https://github.com/GaloisInc/libBF-hs/issues
license:             MIT
license-file:        LICENSE
author:              Iavor Diatchki
maintainer:          iavor.diatchki@gmail.com
-- copyright:
category:            Data
extra-source-files:  CHANGELOG.md

source-repository head
  type:     git
  location: https://github.com/GaloisInc/libBF-hs.git

flag system-libbf
  default:     False
  description: Use system libbf instead

library
  exposed-modules:
    LibBF,
    LibBF.Opts,
    LibBF.Mutable

  build-depends:
    base >=4.12.0.0 && < 5,
    deepseq,
    hashable >= 1.3

  build-tool-depends:
    hsc2hs:hsc2hs

  hs-source-dirs:      src

  -- Prior to GHC 9.4, Windows GHC bindists bundled a GCC-based C toolchain,
  -- which requires linking against the GCC library to handle some of the
  -- compiler intrinsics that appear in the optimized code. Moreover,
  -- dynamically linking against the GCC library proves fragile, so we force
  -- static linking by providing the full name of the static GCC library
  -- archive.
  --
  -- On GHC 9.4+, Windows GHC bindists ship a Clang-based C toolchain. Clang
  -- optimizations don't appear to require linking against anything in
  -- particular, so it just works out of the box.
  if !impl(ghc >= 9.4)
    if os(windows)
      if arch(x86_64)
        extra-libraries: gcc_s_seh-1
      else
        extra-libraries: gcc_s_dw2-1

  if flag(system-libbf)
    extra-libraries: bf
    c-sources:
      cbits/libbf-hs.c
  else
    include-dirs:
      libbf-quickjs-2021-03-27

    includes:
      libbf-quickjs-2021-03-27/libbf.h

    install-includes:
      libbf-quickjs-2021-03-27/libbf.h
      libbf-quickjs-2021-03-27/cutils.h

    c-sources:
      libbf-quickjs-2021-03-27/cutils.c
      libbf-quickjs-2021-03-27/libbf.c
      cbits/libbf-hs.c

  ghc-options:         -Wall
  default-language:    Haskell2010

test-suite libBF-tests
  type:               exitcode-stdio-1.0
  hs-source-dirs:     tests
  main-is:            RunUnitTests.hs
  ghc-options:        -Wall
  default-language:   Haskell2010
  build-depends:      base,
                      libBF,
                      tasty >= 1.3 && < 1.6,
                      tasty-hunit >= 0.10 && < 0.11