Remove more other-modules duplicates.
[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   if impl(ghc <= 7.6)
202     -- prior to ghc-7.4 generics lived in ghc-prim
203     build-depends: ghc-prim
204
205 benchmark generics-bench
206   type: exitcode-stdio-1.0
207   hs-source-dirs: src benchmarks
208   main-is: GenericsBench.hs
209   other-modules:
210     Data.Binary
211     Data.Binary.Builder
212     Data.Binary.Class
213     Data.Binary.FloatCast
214     Data.Binary.Generic
215     Data.Binary.Get
216     Data.Binary.Get.Internal
217     Data.Binary.Internal
218     Data.Binary.Put
219   build-depends:
220     base >= 4.5.0.0 && < 5,
221     bytestring >= 0.10.4,
222     -- The benchmark already depended on 'generic-deriving' transitively. That's
223     -- what caused one of the problems, as both 'generic-deriving' and
224     -- 'GenericsBenchTypes' used to define 'instance Generic Version'.
225     generic-deriving >= 0.10,
226     directory,
227     filepath,
228     unordered-containers,
229     zlib,
230     criterion
231     
232   other-modules:
233     Cabal24
234     GenericsBenchCache
235     GenericsBenchTypes
236   -- build dependencies from using binary source rather than depending on the library
237   build-depends: array, containers
238   ghc-options: -O2 -Wall
239   if impl(ghc <= 7.6)
240     -- prior to ghc-7.4 generics lived in ghc-prim
241     build-depends: ghc-prim
242
243 benchmark builder
244   type: exitcode-stdio-1.0
245   hs-source-dirs: src benchmarks
246   main-is: Builder.hs
247   other-modules:
248     Data.Binary
249     Data.Binary.Builder
250     Data.Binary.Class
251     Data.Binary.FloatCast
252     Data.Binary.Generic
253     Data.Binary.Get
254     Data.Binary.Get.Internal
255     Data.Binary.Internal
256     Data.Binary.Put
257   build-depends:
258     base >= 4.5.0.0 && < 5,
259     bytestring >= 0.10.4,
260     criterion == 1.*,
261     deepseq,
262     mtl
263   -- build dependencies from using binary source rather than depending on the library
264   build-depends: array, containers
265   ghc-options: -O2
266   if impl(ghc <= 7.6)
267     -- prior to ghc-7.4 generics lived in ghc-prim
268     build-depends: ghc-prim