16872Siklamcxx_library(
213370Siklam    name='zstd',
36872Siklam    header_namespace='',
46872Siklam    exported_headers=['zstd.h'],
56872Siklam    visibility=['PUBLIC'],
66872Siklam    deps=[
76872Siklam        ':common',
86872Siklam        ':compress',
96872Siklam        ':decompress',
106872Siklam        ':deprecated',
116872Siklam    ],
126872Siklam)
136872Siklam
146872Siklamcxx_library(
156872Siklam    name='compress',
166872Siklam    header_namespace='',
176872Siklam    visibility=['PUBLIC'],
186872Siklam    exported_headers=subdir_glob([
196872Siklam        ('compress', 'zstd*.h'),
206872Siklam    ]),
216872Siklam    srcs=glob(['compress/zstd*.c', 'compress/hist.c']),
226872Siklam    deps=[':common'],
236872Siklam)
246872Siklam
256872Siklamcxx_library(
266872Siklam    name='decompress',
276872Siklam    header_namespace='',
286872Siklam    visibility=['PUBLIC'],
296872Siklam    headers=subdir_glob([
306872Siklam        ('decompress', '*_impl.h'),
316872Siklam    ]),
326872Siklam    srcs=glob(['decompress/zstd*.c']),
336872Siklam    deps=[
346872Siklam        ':common',
356872Siklam        ':legacy',
366872Siklam    ],
376872Siklam)
386872Siklam
396872Siklamcxx_library(
406872Siklam    name='deprecated',
416872Siklam    header_namespace='',
426872Siklam    visibility=['PUBLIC'],
436872Siklam    exported_headers=subdir_glob([
446872Siklam        ('deprecated', '*.h'),
456872Siklam    ]),
466872Siklam    srcs=glob(['deprecated/*.c']),
476872Siklam    deps=[':common'],
486872Siklam)
496872Siklam
506872Siklamcxx_library(
516872Siklam    name='legacy',
526872Siklam    header_namespace='',
536872Siklam    visibility=['PUBLIC'],
546872Siklam    exported_headers=subdir_glob([
5513370Siklam        ('legacy', '*.h'),
566872Siklam    ]),
576872Siklam    srcs=glob(['legacy/*.c']),
586872Siklam    deps=[':common'],
596872Siklam    exported_preprocessor_flags=[
606872Siklam        '-DZSTD_LEGACY_SUPPORT=4',
616872Siklam    ],
626872Siklam)
636872Siklam
64cxx_library(
65    name='zdict',
66    header_namespace='',
67    visibility=['PUBLIC'],
68    exported_headers=['zdict.h'],
69    headers=subdir_glob([
70        ('dictBuilder', 'divsufsort.h'),
71        ('dictBuilder', 'cover.h'),
72    ]),
73    srcs=glob(['dictBuilder/*.c']),
74    deps=[':common'],
75)
76
77cxx_library(
78    name='compiler',
79    header_namespace='',
80    visibility=['PUBLIC'],
81    exported_headers=subdir_glob([
82        ('common', 'compiler.h'),
83    ]),
84)
85
86cxx_library(
87    name='cpu',
88    header_namespace='',
89    visibility=['PUBLIC'],
90    exported_headers=subdir_glob([
91        ('common', 'cpu.h'),
92    ]),
93)
94
95cxx_library(
96    name='bitstream',
97    header_namespace='',
98    visibility=['PUBLIC'],
99    exported_headers=subdir_glob([
100        ('common', 'bitstream.h'),
101    ]),
102)
103
104cxx_library(
105    name='entropy',
106    header_namespace='',
107    visibility=['PUBLIC'],
108    exported_headers=subdir_glob([
109        ('common', 'fse.h'),
110        ('common', 'huf.h'),
111    ]),
112    srcs=[
113        'common/entropy_common.c',
114        'common/fse_decompress.c',
115        'compress/fse_compress.c',
116        'compress/huf_compress.c',
117        'decompress/huf_decompress.c',
118    ],
119    deps=[
120        ':debug',
121        ':bitstream',
122        ':compiler',
123        ':errors',
124        ':mem',
125    ],
126)
127
128cxx_library(
129    name='errors',
130    header_namespace='',
131    visibility=['PUBLIC'],
132    exported_headers=[
133        'zstd_errors.h',
134        'common/error_private.h',
135    ]
136    srcs=['common/error_private.c'],
137)
138
139cxx_library(
140    name='mem',
141    header_namespace='',
142    visibility=['PUBLIC'],
143    exported_headers=subdir_glob([
144        ('common', 'mem.h'),
145    ]),
146)
147
148cxx_library(
149    name='pool',
150    header_namespace='',
151    visibility=['PUBLIC'],
152    exported_headers=subdir_glob([
153        ('common', 'pool.h'),
154    ]),
155    srcs=['common/pool.c'],
156    deps=[
157        ':threading',
158        ':zstd_common',
159    ],
160)
161
162cxx_library(
163    name='threading',
164    header_namespace='',
165    visibility=['PUBLIC'],
166    exported_headers=subdir_glob([
167        ('common', 'threading.h'),
168    ]),
169    srcs=['common/threading.c'],
170    exported_preprocessor_flags=[
171        '-DZSTD_MULTITHREAD',
172    ],
173    exported_linker_flags=[
174        '-pthread',
175    ],
176)
177
178cxx_library(
179    name='xxhash',
180    header_namespace='',
181    visibility=['PUBLIC'],
182    exported_headers=subdir_glob([
183        ('common', 'xxhash.h'),
184    ]),
185    srcs=['common/xxhash.c'],
186    exported_preprocessor_flags=[
187        '-DXXH_NAMESPACE=ZSTD_',
188    ],
189)
190
191cxx_library(
192    name='zstd_common',
193    header_namespace='',
194    visibility=['PUBLIC'],
195    exported_headers=subdir_glob([
196        ('', 'zstd.h'),
197        ('common', 'zstd_internal.h'),
198    ]),
199    srcs=['common/zstd_common.c'],
200    deps=[
201        ':compiler',
202        ':errors',
203        ':mem',
204    ],
205)
206
207cxx_library(
208    name='debug',
209    header_namespace='',
210    visibility=['PUBLIC'],
211    exported_headers=subdir_glob([
212        ('common', 'debug.h'),
213    ]),
214    srcs=['common/debug.c'],
215)
216
217cxx_library(
218    name='common',
219    deps=[
220        ':debug',
221        ':bitstream',
222        ':compiler',
223        ':cpu',
224        ':entropy',
225        ':errors',
226        ':mem',
227        ':pool',
228        ':threading',
229        ':xxhash',
230        ':zstd_common',
231    ]
232)
233