Fix build error. Duplicates in other-modules.
[packages/binary.git] / binary.cabal
1 name:            binary
2 version:         0.10.0.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.Internal
162     Data.Binary.Internal
163     Data.Binary.Put
164   build-depends:
165     attoparsec,
166     base >= 4.5.0.0 && < 5,
167     bytestring >= 0.10.4,
168     cereal,
169     criterion == 1.*,
170     deepseq,
171     mtl
172   -- build dependencies from using binary source rather than depending on the library
173   build-depends: array, containers
174   ghc-options: -O2 -Wall
175   if impl(ghc <= 7.6)
176     -- prior to ghc-7.4 generics lived in ghc-prim
177     build-depends: ghc-prim
178
179
180 benchmark put
181   type: exitcode-stdio-1.0
182   hs-source-dirs: src benchmarks
183   main-is: Put.hs
184   other-modules:
185     Data.Binary
186     Data.Binary.Builder
187     Data.Binary.Class
188     Data.Binary.FloatCast
189     Data.Binary.Generic
190     Data.Binary.Get
191     Data.Binary.Get.Internal
192     Data.Binary.Internal
193   build-depends:
194     base >= 4.5.0.0 && < 5,
195     bytestring >= 0.10.4,
196     criterion == 1.*,
197     deepseq
198   -- build dependencies from using binary source rather than depending on the library
199   build-depends: array, containers
200   ghc-options: -O2 -Wall
201   other-modules: Data.Binary.Generic
202   if impl(ghc <= 7.6)
203     -- prior to ghc-7.4 generics lived in ghc-prim
204     build-depends: ghc-prim
205
206 benchmark generics-bench
207   type: exitcode-stdio-1.0
208   hs-source-dirs: src benchmarks
209   main-is: GenericsBench.hs
210   other-modules:
211     Data.Binary
212     Data.Binary.Builder
213     Data.Binary.Class
214     Data.Binary.FloatCast
215     Data.Binary.Generic
216     Data.Binary.Get
217     Data.Binary.Get.Internal
218     Data.Binary.Internal
219     Data.Binary.Put
220   build-depends:
221     base >= 4.5.0.0 && < 5,
222     bytestring >= 0.10.4,
223     -- The benchmark already depended on 'generic-deriving' transitively. That's
224     -- what caused one of the problems, as both 'generic-deriving' and
225     -- 'GenericsBenchTypes' used to define 'instance Generic Version'.
226     generic-deriving >= 0.10,
227     directory,
228     filepath,
229     unordered-containers,
230     zlib,
231     criterion
232     
233   other-modules:
234     Cabal24
235     GenericsBenchCache
236     GenericsBenchTypes
237     Data.Binary.Generic
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