Add D.V.Unboxed with proper interface
[darcs-mirrors/vector.git] / vector.cabal
1 Name:           vector
2 Version:        0.5
3 License:        BSD3
4 License-File:   LICENSE
5 Author:         Roman Leshchinskiy <rl@cse.unsw.edu.au>
6 Maintainer:     Roman Leshchinskiy <rl@cse.unsw.edu.au>
7 Copyright:      (c) Roman Leshchinskiy 2008-2009
8 Homepage:       http://darcs.haskell.org/vector
9 Category:       Data, Data Structures
10 Synopsis:       Efficient Arrays
11 Description:
12         .
13         An efficient implementation of Int-indexed arrays with a powerful loop
14         fusion framework.
15         .
16         It is structured as follows:
17         .
18         [@Data.Vector@] boxed vectors of arbitrary types
19         .
20         [@Data.Vector.Primitive@] unboxed vectors of primitive types as
21                 defined by the @primitive@ package
22         .
23         [@Data.Vector.Storable@] unboxed vectors of 'Storable' types
24         .
25         [@Data.Vector.Generic@] generic interface to the vector types
26         .
27
28 Cabal-Version:  >= 1.2
29 Build-Type:     Simple
30
31 Extra-Source-Files:
32       tests/vector-tests.cabal
33       tests/LICENSE
34       tests/Setup.hs
35       tests/Main.hs
36       tests/Boilerplater.hs
37       tests/Utilities.hs
38       tests/Tests/Stream.hs
39       tests/Tests/Vector.hs
40       internal/GenUnboxTuple.hs
41       internal/unbox-tuple-instances
42
43 Flag BoundsChecks
44   Description: Enable bounds checking
45   Default: True
46
47 Flag UnsafeChecks
48   Description: Enable bounds checking in unsafe operations at the cost of a
49                significant performance penalty
50   Default: False
51
52 Flag InternalChecks
53   Description: Enable internal consistency checks at the cost of a
54                significant performance penalty
55   Default: False
56
57
58 Library
59   Extensions: CPP
60   Exposed-Modules:
61         Data.Vector.Internal.Check
62
63         Data.Vector.Fusion.Util
64         Data.Vector.Fusion.Stream.Size
65         Data.Vector.Fusion.Stream.Monadic
66         Data.Vector.Fusion.Stream
67
68         Data.Vector.Generic.Mutable
69         Data.Vector.Generic.New
70         Data.Vector.Generic
71
72         Data.Vector.Primitive.Mutable
73         Data.Vector.Primitive
74
75         Data.Vector.Storable.Internal
76         Data.Vector.Storable.Mutable
77         Data.Vector.Storable
78
79         Data.Vector.Unboxed.Base
80         Data.Vector.Unboxed.Mutable
81         Data.Vector.Unboxed
82
83         Data.Vector.Mutable
84         Data.Vector
85
86   Include-Dirs:
87         include, internal
88
89   Install-Includes:
90         vector.h
91
92   Build-Depends: base >= 2 && < 5, ghc >= 6.9, primitive >= 0.2 && < 0.3
93
94   if impl(ghc<6.13)
95     Ghc-Options: -finline-if-enough-args
96   
97   Ghc-Options: -O2
98
99   if flag(BoundsChecks)
100     cpp-options: -DVECTOR_BOUNDS_CHECKS
101
102   if flag(UnsafeChecks)
103     cpp-options: -DVECTOR_UNSAFE_CHECKS
104
105   if flag(InternalChecks)
106     cpp-options: -DVECTOR_INTERNAL_CHECKS
107