1cxx_library(
2    name='zstd',
3    header_namespace='',
4    exported_headers=['zstd.h'],
5    visibility=['PUBLIC'],
6    deps=[
7        ':common',
8        ':compress',
9        ':decompress',
10        ':deprecated',
11    ],
12)
13
14cxx_library(
15    name='compress',
16    header_namespace='',
17    visibility=['PUBLIC'],
18    exported_headers=subdir_glob([
19        ('compress', 'zstd*.h'),
20    ]),
21    srcs=glob(['compress/zstd*.c', 'compress/hist.c']),
22    deps=[':common'],
23)
24
25cxx_library(
26    name='decompress',
27    header_namespace='',
28    visibility=['PUBLIC'],
29    headers=subdir_glob([
30        ('decompress', '*_impl.h'),
31    ]),
32    srcs=glob(['decompress/zstd*.c']),
33    deps=[
34        ':common',
35        ':legacy',
36    ],
37)
38
39cxx_library(
40    name='deprecated',
41    header_namespace='',
42    visibility=['PUBLIC'],
43    exported_headers=subdir_glob([
44        ('deprecated', '*.h'),
45    ]),
46    srcs=glob(['deprecated/*.c']),
47    deps=[':common'],
48)
49
50cxx_library(
51    name='legacy',
52    header_namespace='',
53    visibility=['PUBLIC'],
54    exported_headers=subdir_glob([
55        ('legacy', '*.h'),
56    ]),
57    srcs=glob(['legacy/*.c']),
58    deps=[':common'],
59    exported_preprocessor_flags=[
60        '-DZSTD_LEGACY_SUPPORT=4',
61    ],
62)
63
64cxx_library(
65    name='zdict',
66    header_namespace='',
67    visibility=['PUBLIC'],
68    exported_headers=subdir_glob([
69        ('dictBuilder', 'zdict.h'),
70    ]),
71    headers=subdir_glob([
72        ('dictBuilder', 'divsufsort.h'),
73        ('dictBuilder', 'cover.h'),
74    ]),
75    srcs=glob(['dictBuilder/*.c']),
76    deps=[':common'],
77)
78
79cxx_library(
80    name='compiler',
81    header_namespace='',
82    visibility=['PUBLIC'],
83    exported_headers=subdir_glob([
84        ('common', 'compiler.h'),
85    ]),
86)
87
88cxx_library(
89    name='cpu',
90    header_namespace='',
91    visibility=['PUBLIC'],
92    exported_headers=subdir_glob([
93        ('common', 'cpu.h'),
94    ]),
95)
96
97cxx_library(
98    name='bitstream',
99    header_namespace='',
100    visibility=['PUBLIC'],
101    exported_headers=subdir_glob([
102        ('common', 'bitstream.h'),
103    ]),
104)
105
106cxx_library(
107    name='entropy',
108    header_namespace='',
109    visibility=['PUBLIC'],
110    exported_headers=subdir_glob([
111        ('common', 'fse.h'),
112        ('common', 'huf.h'),
113    ]),
114    srcs=[
115        'common/entropy_common.c',
116        'common/fse_decompress.c',
117        'compress/fse_compress.c',
118        'compress/huf_compress.c',
119        'decompress/huf_decompress.c',
120    ],
121    deps=[
122        ':debug',
123        ':bitstream',
124        ':compiler',
125        ':errors',
126        ':mem',
127    ],
128)
129
130cxx_library(
131    name='errors',
132    header_namespace='',
133    visibility=['PUBLIC'],
134    exported_headers=subdir_glob([
135        ('common', 'error_private.h'),
136        ('common', 'zstd_errors.h'),
137    ]),
138    srcs=['common/error_private.c'],
139)
140
141cxx_library(
142    name='mem',
143    header_namespace='',
144    visibility=['PUBLIC'],
145    exported_headers=subdir_glob([
146        ('common', 'mem.h'),
147    ]),
148)
149
150cxx_library(
151    name='pool',
152    header_namespace='',
153    visibility=['PUBLIC'],
154    exported_headers=subdir_glob([
155        ('common', 'pool.h'),
156    ]),
157    srcs=['common/pool.c'],
158    deps=[
159        ':threading',
160        ':zstd_common',
161    ],
162)
163
164cxx_library(
165    name='threading',
166    header_namespace='',
167    visibility=['PUBLIC'],
168    exported_headers=subdir_glob([
169        ('common', 'threading.h'),
170    ]),
171    srcs=['common/threading.c'],
172    exported_preprocessor_flags=[
173        '-DZSTD_MULTITHREAD',
174    ],
175    exported_linker_flags=[
176        '-pthread',
177    ],
178)
179
180cxx_library(
181    name='xxhash',
182    header_namespace='',
183    visibility=['PUBLIC'],
184    exported_headers=subdir_glob([
185        ('common', 'xxhash.h'),
186    ]),
187    srcs=['common/xxhash.c'],
188    exported_preprocessor_flags=[
189        '-DXXH_NAMESPACE=ZSTD_',
190    ],
191)
192
193cxx_library(
194    name='zstd_common',
195    header_namespace='',
196    visibility=['PUBLIC'],
197    exported_headers=subdir_glob([
198        ('', 'zstd.h'),
199        ('common', 'zstd_internal.h'),
200    ]),
201    srcs=['common/zstd_common.c'],
202    deps=[
203        ':compiler',
204        ':errors',
205        ':mem',
206    ],
207)
208
209cxx_library(
210    name='debug',
211    header_namespace='',
212    visibility=['PUBLIC'],
213    exported_headers=subdir_glob([
214        ('common', 'debug.h'),
215    ]),
216    srcs=['common/debug.c'],
217)
218
219cxx_library(
220    name='common',
221    deps=[
222        ':debug',
223        ':bitstream',
224        ':compiler',
225        ':cpu',
226        ':entropy',
227        ':errors',
228        ':mem',
229        ':pool',
230        ':threading',
231        ':xxhash',
232        ':zstd_common',
233    ]
234)
235