comparison contrib/python-zstandard/setup_zstd.py @ 30822:b54a2984cdd4

zstd: vendor python-zstandard 0.6.0 Commit 63c68d6f5fc8de4afd9bde81b13b537beb4e47e8 from https://github.com/indygreg/python-zstandard is imported without modifications (other than removing unwanted files). This includes minor performance and feature improvements. It also changes the vendored zstd library from 1.1.1 to 1.1.2. # no-check-commit
author Gregory Szorc <gregory.szorc@gmail.com>
date Sat, 14 Jan 2017 19:41:43 -0800
parents b86a448a2965
children c32454d69b85
comparison
equal deleted inserted replaced
30821:7005c03f7387 30822:b54a2984cdd4
14 'common/fse_decompress.c', 14 'common/fse_decompress.c',
15 'common/xxhash.c', 15 'common/xxhash.c',
16 'common/zstd_common.c', 16 'common/zstd_common.c',
17 'compress/fse_compress.c', 17 'compress/fse_compress.c',
18 'compress/huf_compress.c', 18 'compress/huf_compress.c',
19 'compress/zbuff_compress.c',
20 'compress/zstd_compress.c', 19 'compress/zstd_compress.c',
21 'decompress/huf_decompress.c', 20 'decompress/huf_decompress.c',
22 'decompress/zbuff_decompress.c',
23 'decompress/zstd_decompress.c', 21 'decompress/zstd_decompress.c',
24 'dictBuilder/divsufsort.c', 22 'dictBuilder/divsufsort.c',
25 'dictBuilder/zdict.c', 23 'dictBuilder/zdict.c',
26 )] 24 )]
27 25
26 zstd_sources_legacy = ['zstd/%s' % p for p in (
27 'deprecated/zbuff_compress.c',
28 'deprecated/zbuff_decompress.c',
29 'legacy/zstd_v01.c',
30 'legacy/zstd_v02.c',
31 'legacy/zstd_v03.c',
32 'legacy/zstd_v04.c',
33 'legacy/zstd_v05.c',
34 'legacy/zstd_v06.c',
35 'legacy/zstd_v07.c'
36 )]
28 37
29 zstd_includes = [ 38 zstd_includes = [
30 'c-ext', 39 'c-ext',
31 'zstd', 40 'zstd',
32 'zstd/common', 41 'zstd/common',
33 'zstd/compress', 42 'zstd/compress',
34 'zstd/decompress', 43 'zstd/decompress',
35 'zstd/dictBuilder', 44 'zstd/dictBuilder',
45 ]
46
47 zstd_includes_legacy = [
48 'zstd/deprecated',
49 'zstd/legacy',
36 ] 50 ]
37 51
38 ext_sources = [ 52 ext_sources = [
39 'zstd.c', 53 'zstd.c',
40 'c-ext/compressiondict.c', 54 'c-ext/compressiondict.c',
49 'c-ext/decompressoriterator.c', 63 'c-ext/decompressoriterator.c',
50 'c-ext/decompressionwriter.c', 64 'c-ext/decompressionwriter.c',
51 'c-ext/dictparams.c', 65 'c-ext/dictparams.c',
52 ] 66 ]
53 67
68 zstd_depends = [
69 'c-ext/python-zstandard.h',
70 ]
54 71
55 def get_c_extension(name='zstd'): 72
73 def get_c_extension(support_legacy=False, name='zstd'):
56 """Obtain a distutils.extension.Extension for the C extension.""" 74 """Obtain a distutils.extension.Extension for the C extension."""
57 root = os.path.abspath(os.path.dirname(__file__)) 75 root = os.path.abspath(os.path.dirname(__file__))
58 76
59 sources = [os.path.join(root, p) for p in zstd_sources + ext_sources] 77 sources = [os.path.join(root, p) for p in zstd_sources + ext_sources]
78 if support_legacy:
79 sources.extend([os.path.join(root, p) for p in zstd_sources_legacy])
80
60 include_dirs = [os.path.join(root, d) for d in zstd_includes] 81 include_dirs = [os.path.join(root, d) for d in zstd_includes]
82 if support_legacy:
83 include_dirs.extend([os.path.join(root, d) for d in zstd_includes_legacy])
84
85 depends = [os.path.join(root, p) for p in zstd_depends]
61 86
62 # TODO compile with optimizations. 87 # TODO compile with optimizations.
63 return Extension(name, sources, 88 return Extension(name, sources,
64 include_dirs=include_dirs) 89 include_dirs=include_dirs,
90 depends=depends,
91 extra_compile_args=["-DZSTD_LEGACY_SUPPORT=1"] if support_legacy else [])