-
Notifications
You must be signed in to change notification settings - Fork 6
/
unicode-data-names.cabal
198 lines (183 loc) · 5.59 KB
/
unicode-data-names.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
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
cabal-version: 2.2
name: unicode-data-names
version: 0.4.0
synopsis: Unicode characters names and aliases
description:
@unicode-data-names@ provides Haskell APIs to access the Unicode
character /names and aliases/ from the
<https://www.unicode.org/ucd/ Unicode character database> (UCD).
.
The Haskell data structures are generated programmatically from the UCD files.
The latest Unicode version supported by this library is
@<https://www.unicode.org/versions/Unicode15.1.0/ 15.1.0>@.
homepage: http://github.com/composewell/unicode-data
bug-reports: https://github.com/composewell/unicode-data/issues
license: Apache-2.0
license-file: LICENSE
author: Composewell Technologies and Contributors
maintainer: dev@wismill.eu
copyright: 2022 Composewell Technologies and Contributors
category: Data,Text,Unicode
stability: Experimental
build-type: Simple
tested-with: GHC==8.0.2
, GHC==8.2.2
, GHC==8.4.4
, GHC==8.6.5
, GHC==8.8.4
, GHC==8.10.7
, GHC==9.0.2
, GHC==9.2.8
, GHC==9.4.8
, GHC==9.6.5
, GHC==9.8.2
, GHC==9.10.1
extra-doc-files:
Changelog.md
README.md
source-repository head
type: git
location: https://github.com/composewell/unicode-data
flag has-text
description: Expose an API using the text package
manual: True
default: False
flag has-bytestring
description: Expose an API using the bytestring package
manual: True
default: False
flag dev-has-icu
description:
Use ICU for test and benchmark. Intended for development on the repository.
manual: True
default: False
flag export-all-chars
description: Build the export-all-chars executable
manual: True
default: False
common default-extensions
default-extensions:
BangPatterns
DeriveGeneric
MagicHash
RecordWildCards
ScopedTypeVariables
TupleSections
FlexibleContexts
LambdaCase
-- Experimental, may lead to issues
UnboxedTuples
common compile-options
ghc-options: -Wall
-fwarn-identities
-fwarn-incomplete-record-updates
-fwarn-incomplete-uni-patterns
-fwarn-tabs
default-language: Haskell2010
library
import: default-extensions, compile-options
exposed-modules:
-- The module structure is derived from
-- https://www.unicode.org/reports/tr44/#Property_Index_Table
Unicode.Char.General.Names
-- Generated files
-- This module structure is largely based on the UCD file names from which
-- the properties are generated.
Unicode.Internal.Char.Label
Unicode.Internal.Char.Names.Version
Unicode.Internal.Char.UnicodeData.DerivedName
Unicode.Internal.Char.UnicodeData.NameAliases
other-modules:
-- Internal files
Unicode.Internal.Bits.Names
hs-source-dirs: lib
build-depends:
base >= 4.7 && < 4.22,
unicode-data >= 0.6 && < 0.7
-- Support for raw string literals unpacking is included in base ≥ 4.15
if impl(ghc < 9.0.0)
build-depends:
ghc-prim >= 0.3.1 && < 1.0
if flag(has-text)
exposed-modules:
Unicode.Char.General.Names.Text
build-depends:
text >= 2.0 && < 2.2
if flag(has-bytestring)
exposed-modules:
Unicode.Char.General.Names.ByteString
build-depends:
bytestring >= 0.11.2 && < 0.13
test-suite test
import: default-extensions, compile-options
type: exitcode-stdio-1.0
main-is: Main.hs
hs-source-dirs:
test
other-modules:
Unicode.Char.General.NamesSpec
build-depends:
base >= 4.7 && < 4.22
, hspec >= 2.0 && < 2.12
, unicode-data >= 0.6 && < 0.7
, unicode-data-names
if flag(has-text)
cpp-options: -DHAS_TEXT
other-modules:
Unicode.Char.General.Names.TextSpec
build-depends:
text >= 2.0 && < 2.2
if flag(has-bytestring)
cpp-options: -DHAS_BYTESTRING
other-modules:
Unicode.Char.General.Names.ByteStringSpec
build-depends:
bytestring >= 0.11.2 && < 0.13
if flag(dev-has-icu)
cpp-options: -DHAS_ICU
other-modules:
ICU.NamesSpec
build-depends:
icu
executable export-all-chars
import: default-extensions, compile-options
ghc-options: -O2
hs-source-dirs: test
main-is: export_all_chars.hs
if flag(export-all-chars)
buildable: True
build-depends:
base
, unicode-data
, unicode-data-names
else
buildable: False
benchmark bench
import: default-extensions, compile-options
type: exitcode-stdio-1.0
hs-source-dirs: bench
main-is: Main.hs
build-depends:
base >= 4.7 && < 4.22,
deepseq >= 1.1 && < 1.6,
tasty-bench >= 0.2.5 && < 0.5,
tasty >= 1.4.1 && < 1.6,
unicode-data >= 0.6 && < 0.7,
unicode-data-names
if flag(has-text)
cpp-options: -DHAS_TEXT
build-depends:
text >= 2.0 && < 2.2
if flag(has-bytestring)
cpp-options: -DHAS_BYTESTRING
build-depends:
bytestring >= 0.11.2 && < 0.13
if flag(dev-has-icu)
cpp-options: -DHAS_ICU
build-depends:
icu
-- [NOTE] Recommendation of tasty-bench to reduce garbage collection noisiness
ghc-options: -O2 -fdicts-strict -rtsopts -with-rtsopts=-A32m
-- [NOTE] Recommendation of tasty-bench for comparison against baseline
if impl(ghc >= 8.6)
ghc-options: -fproc-alignment=64