forked from kadena-io/rocksdb-haskell
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathrocksdb-haskell-kadena.cabal
183 lines (168 loc) · 4.6 KB
/
rocksdb-haskell-kadena.cabal
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
cabal-version: 3.0
name: rocksdb-haskell-kadena
version: 1.1.0
synopsis: Haskell bindings to RocksDB
homepage: http://github.com/kadena-io/rocksdb-haskell
license: BSD-3-Clause
license-file: LICENSE
author: Kim Altintop, Alexander Thiemann et.al. (see AUTHORS file)
maintainer: Edmund Noble <[email protected]>
copyright:
Copyright (c) 2022 Kadena LLC
Copyright (c) 2014 The rocksdb-haskell Authors
Copyright (c) 2012-2014 The leveldb-haskell Authors
category: Database, FFI
stability: Experimental
build-type: Simple
tested-with: GHC == 8.0.1
description:
This package includes the relevant RocksDB sources and builds RocksDB from
source, which can take a long time.
.
In order to build this package the following libraries must be present in
the system: gmp, gflags.
.
The build also requires the following optional libraries to be present in
the system: snappy, z, bz2, lz4, zstd, tbb (see 'with-tbb' flag to disable).
If one of these is missing, one
has to comment out the respective entries in list of extra-libraries and the
cxx-flags in the file rocksb-haskell-kadena.cabal.
.
From <http://rocksdb.org>:
.
RocksDB is an embeddable persistent key-value store for fast storage.
RocksDB can also be the foundation for a client-server database but our
current focus is on embedded workloads.
.
RocksDB builds on LevelDB to be scalable to run on servers with many CPU
cores, to efficiently use fast storage, to support IO-bound, in-memory and
write-once workloads, and to be flexible to allow for innovation.
extra-source-files:
README.md
AUTHORS
source-repository head
type: git
location: git://github.com/kadena-io/rocksdb-haskell.git
flag with-tbb
description: Build with tbb support
default: False
manual: True
library
hs-source-dirs: src
cxx-sources: cpp/chainweb-rocksdb.cpp
include-dirs: cpp
install-includes: chainweb-rocksdb.h
exposed-modules: Database.RocksDB
, Database.RocksDB.Base
, Database.RocksDB.C
, Database.RocksDB.Internal
, Database.RocksDB.Iterator
, Database.RocksDB.ReadOptions
, Database.RocksDB.Types
default-language: Haskell2010
other-extensions:
CPP,
ForeignFunctionInterface,
EmptyDataDecls,
RecordWildCards
build-depends:
base >= 4 && < 5,
binary,
bytestring,
data-default,
directory,
filepath,
transformers
ghc-options:
-Wall
-- -optl-static-libstdc++
-- ld-options: -static-libstdc++
-- All of the following libraries are optional. If one of the libraries
-- is not available on the build host, it can be commented out in the
-- list below.
--
extra-libraries:
snappy
gflags
z
bz2
lz4
zstd
stdc++
rocksdb
if flag(with-tbb)
extra-libraries:
tbb
-- These options are extracted from CXXFLAGS the RocksDB Makefile
cxx-options:
-fno-rtti
-g
-W
-Wextra
-Wall
-Wno-invalid-offsetof
-Wsign-compare
-Wshadow
-Wunused-parameter
-Werror
-std=c++20
-faligned-new
-DNO_THREEWAY_CRC32C
-DHAVE_ALIGNED_NEW
-DROCKSDB_PLATFORM_POSIX
-DROCKSDB_LIB_IO_POSIX
-DSNAPPY
-DGFLAGS=1
-DZLIB
-DBZIP2
-DLZ4
-DZSTD
-DROCKSDB_BACKTRACE
-mtune=generic
-DROCKSDB_SUPPORT_THREAD_LOCAL
-fno-omit-frame-pointer
-momit-leaf-frame-pointer
-DNDEBUG
-Woverloaded-virtual
-Wnon-virtual-dtor
-Wno-missing-field-initializers
-O2
if arch(x86_64)
cxx-options:
-march=x86-64
-msse3
if flag(with-tbb)
cxx-options:
-DTBB
if os(linux)
cxx-options:
-DOS_LINUX
-fno-builtin-memcmp
-DROCKSDB_FALLOCATE_PRESENT
-DROCKSDB_MALLOC_USABLE_SIZE
-DROCKSDB_PTHREAD_ADAPTIVE_MUTEX
-DROCKSDB_RANGESYNC_PRESENT
-DROCKSDB_SCHED_GETCPU_PRESENT
-DROCKSDB_AUXV_GETAUXVAL_PRESENT
if os(darwin)
cxx-options:
-DOS_MACOSX
-Wshorten-64-to-32
-DHAVE_FULLFSYNC
test-suite rocksdb-tests
ghc-options: -Wall
main-is: tests.hs
type: exitcode-stdio-1.0
hs-source-dirs: tests
build-depends: base >= 3 && < 5
, rocksdb-haskell-kadena
, hspec >= 1.8
, process >= 1.1.0.2
, bytestring >= 0.10.4.0
, data-default
, resourcet
, transformers
, temporary
, hspec-expectations
, QuickCheck
default-language: Haskell2010