contrib/python-zstandard/setup_zstd.py
changeset 30822 b54a2984cdd4
parent 30435 b86a448a2965
child 30895 c32454d69b85
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 [])