Add two more other-modules.
[packages/binary.git] / binary.cabal
1 name:            binary
2 version:         0.8.6.0
3 license:         BSD3
4 license-file:    LICENSE
5 author:          Lennart Kolmodin <kolmodin@gmail.com>
6 maintainer:      Lennart Kolmodin, Don Stewart <dons00@gmail.com>
7 homepage:        https://github.com/kolmodin/binary
8 description:     Efficient, pure binary serialisation using lazy ByteStrings.
9                  Haskell values may be encoded to and from binary formats,
10                  written to disk as binary, or sent over the network.
11                  The format used can be automatically generated, or
12                  you can choose to implement a custom format if needed.
13                  Serialisation speeds of over 1 G\/sec have been observed,
14                  so this library should be suitable for high performance
15                  scenarios.
16 synopsis:        Binary serialisation for Haskell values using lazy ByteStrings
17 category:        Data, Parsing
18 stability:       provisional
19 build-type:      Simple
20 cabal-version:   >= 1.8
21 tested-with:     GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2
22 extra-source-files:
23   README.md changelog.md docs/hcar/binary-Lb.tex tools/derive/*.hs
24
25 -- from the benchmark 'bench'
26 extra-source-files:
27   benchmarks/CBenchmark.h
28
29 source-repository head
30   type: git
31   location: git://github.com/kolmodin/binary.git
32
33 library
34   build-depends:   base >= 4.5.0.0 && < 5, bytestring >= 0.10.4, containers, array
35   hs-source-dirs:  src
36   exposed-modules: Data.Binary,
37                    Data.Binary.Put,
38                    Data.Binary.Get,
39                    Data.Binary.Get.Internal,
40                    Data.Binary.Builder
41
42   other-modules:   Data.Binary.Class,
43                    Data.Binary.Internal,
44                    Data.Binary.Generic,
45                    Data.Binary.FloatCast
46   if impl(ghc <= 7.6)
47     -- prior to ghc-7.4 generics lived in ghc-prim
48     build-depends: ghc-prim
49
50   ghc-options:     -O2 -Wall -fliberate-case-threshold=1000
51
52   if impl(ghc >= 8.0)
53     ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances
54
55 -- Due to circular dependency, we cannot make any of the test-suites or
56 -- benchmark depend on the binary library. Instead, for each test-suite and
57 -- benchmark, we include the source directory of binary and build-depend on all
58 -- the dependencies binary has.
59
60 test-suite qc
61   type:  exitcode-stdio-1.0
62   hs-source-dirs: src tests
63   main-is: QC.hs
64   other-modules:
65     Action
66     Arbitrary
67   other-modules:
68     Data.Binary
69     Data.Binary.Builder
70     Data.Binary.Class
71     Data.Binary.FloatCast
72     Data.Binary.Generic
73     Data.Binary.Get
74     Data.Binary.Get.Internal
75     Data.Binary.Internal
76     Data.Binary.Put
77   build-depends:
78     base >= 4.5.0.0 && < 5,
79     bytestring >= 0.10.4,
80     random>=1.0.1.0,
81     test-framework,
82     test-framework-quickcheck2 >= 0.3,
83     QuickCheck >= 2.9
84
85   -- build dependencies from using binary source rather than depending on the library
86   build-depends: array, containers
87   ghc-options: -Wall -O2 -threaded
88   if impl(ghc <= 7.6)
89     -- prior to ghc-7.4 generics lived in ghc-prim
90     build-depends: ghc-prim
91
92
93 test-suite read-write-file
94   type:  exitcode-stdio-1.0
95   hs-source-dirs: src tests
96   main-is: File.hs
97   other-modules:
98     Data.Binary
99     Data.Binary.Builder
100     Data.Binary.Class
101     Data.Binary.FloatCast
102     Data.Binary.Generic
103     Data.Binary.Get
104     Data.Binary.Get.Internal
105     Data.Binary.Internal
106     Data.Binary.Put
107   build-depends:
108     base >= 4.5.0.0 && < 5,
109     bytestring >= 0.10.4,
110     Cabal,
111     directory,
112     filepath,
113     HUnit
114
115   -- build dependencies from using binary source rather than depending on the library
116   build-depends: array, containers
117   ghc-options: -Wall
118   if impl(ghc <= 7.6)
119     -- prior to ghc-7.4 generics lived in ghc-prim
120     build-depends: ghc-prim
121
122
123 benchmark bench
124   type: exitcode-stdio-1.0
125   hs-source-dirs: src benchmarks
126   main-is: Benchmark.hs
127   other-modules:
128     MemBench
129     Data.Binary
130     Data.Binary.Builder
131     Data.Binary.Class
132     Data.Binary.FloatCast
133     Data.Binary.Generic
134     Data.Binary.Get
135     Data.Binary.Get.Internal
136     Data.Binary.Internal
137     Data.Binary.Put
138   build-depends:
139     base >= 4.5.0.0 && < 5,
140     bytestring >= 0.10.4
141   -- build dependencies from using binary source rather than depending on the library
142   build-depends: array, containers
143   c-sources: benchmarks/CBenchmark.c
144   include-dirs: benchmarks
145   ghc-options: -O2
146   if impl(ghc <= 7.6)
147     -- prior to ghc-7.4 generics lived in ghc-prim
148     build-depends: ghc-prim
149
150
151 benchmark get
152   type: exitcode-stdio-1.0
153   hs-source-dirs: src benchmarks
154   main-is: Get.hs
155   other-modules:
156     Data.Binary
157     Data.Binary.Builder
158     Data.Binary.Class
159     Data.Binary.FloatCast
160     Data.Binary.Generic
161     Data.Binary.Get
162     Data.Binary.Get.Internal
163     Data.Binary.Internal
164     Data.Binary.Put
165   build-depends:
166     attoparsec,
167     base >= 4.5.0.0 && < 5,
168     bytestring >= 0.10.4,
169     cereal,
170     criterion == 1.*,
171     deepseq,
172     mtl
173   -- build dependencies from using binary source rather than depending on the library
174   build-depends: array, containers
175   ghc-options: -O2 -Wall
176   if impl(ghc <= 7.6)
177     -- prior to ghc-7.4 generics lived in ghc-prim
178     build-depends: ghc-prim
179
180
181 benchmark put
182   type: exitcode-stdio-1.0
183   hs-source-dirs: src benchmarks
184   main-is: Put.hs
185   other-modules:
186     Data.Binary
187     Data.Binary.Builder
188     Data.Binary.Class
189     Data.Binary.FloatCast
190     Data.Binary.Generic
191     Data.Binary.Get
192     Data.Binary.Get.Internal
193     Data.Binary.Internal
194     Data.Binary.Put
195   build-depends:
196     base >= 4.5.0.0 && < 5,
197     bytestring >= 0.10.4,
198     criterion == 1.*,
199     deepseq
200   -- build dependencies from using binary source rather than depending on the library
201   build-depends: array, containers
202   ghc-options: -O2 -Wall
203   if impl(ghc <= 7.6)
204     -- prior to ghc-7.4 generics lived in ghc-prim
205     build-depends: ghc-prim
206
207 benchmark generics-bench
208   type: exitcode-stdio-1.0
209   hs-source-dirs: src benchmarks
210   main-is: GenericsBench.hs
211   other-modules:
212     Data.Binary
213     Data.Binary.Builder
214     Data.Binary.Class
215     Data.Binary.FloatCast
216     Data.Binary.Generic
217     Data.Binary.Get
218     Data.Binary.Get.Internal
219     Data.Binary.Internal
220     Data.Binary.Put
221   build-depends:
222     base >= 4.5.0.0 && < 5,
223     bytestring >= 0.10.4,
224     -- The benchmark already depended on 'generic-deriving' transitively. That's
225     -- what caused one of the problems, as both 'generic-deriving' and
226     -- 'GenericsBenchTypes' used to define 'instance Generic Version'.
227     generic-deriving >= 0.10,
228     directory,
229     filepath,
230     unordered-containers,
231     zlib,
232     criterion
233     
234   other-modules:
235     Cabal24
236     GenericsBenchCache
237     GenericsBenchTypes
238   -- build dependencies from using binary source rather than depending on the library
239   build-depends: array, containers
240   ghc-options: -O2 -Wall
241   if impl(ghc <= 7.6)
242     -- prior to ghc-7.4 generics lived in ghc-prim
243     build-depends: ghc-prim
244
245 benchmark builder
246   type: exitcode-stdio-1.0
247   hs-source-dirs: src benchmarks
248   main-is: Builder.hs
249   other-modules:
250     Data.Binary
251     Data.Binary.Builder
252     Data.Binary.Class
253     Data.Binary.FloatCast
254     Data.Binary.Generic
255     Data.Binary.Get
256     Data.Binary.Get.Internal
257     Data.Binary.Internal
258     Data.Binary.Put
259   build-depends:
260     base >= 4.5.0.0 && < 5,
261     bytestring >= 0.10.4,
262     criterion == 1.*,
263     deepseq,
264     mtl
265   -- build dependencies from using binary source rather than depending on the library
266   build-depends: array, containers
267   ghc-options: -O2
268   if impl(ghc <= 7.6)
269     -- prior to ghc-7.4 generics lived in ghc-prim
270     build-depends: ghc-prim