Mercurial > hg
view contrib/python-zstandard/setup_zstd.py @ 31060:ab20491b1760
dispatch: rearrange 'unknown command' code to better employ pager
dispatch calls help like a ninja if you give it a truly unknown
command, and that might want to be paged. If it gets paged, then the
'hg: unknown command' text gets eaten by a grue, unless we call the
pager first. This change rearranges the codepaths so we can safely
only invoke the pager in the case where we'll have long output from
the help command code, rather than just a short message like "did you
mean stat instead of start" or "fetch is provided by the fetch
extension".
author | Augie Fackler <augie@google.com> |
---|---|
date | Tue, 21 Feb 2017 14:20:05 -0500 |
parents | c32454d69b85 |
children | e0dc40530c5a |
line wrap: on
line source
# Copyright (c) 2016-present, Gregory Szorc # All rights reserved. # # This software may be modified and distributed under the terms # of the BSD license. See the LICENSE file for details. import os from distutils.extension import Extension zstd_sources = ['zstd/%s' % p for p in ( 'common/entropy_common.c', 'common/error_private.c', 'common/fse_decompress.c', 'common/pool.c', 'common/threading.c', 'common/xxhash.c', 'common/zstd_common.c', 'compress/fse_compress.c', 'compress/huf_compress.c', 'compress/zstd_compress.c', 'decompress/huf_decompress.c', 'decompress/zstd_decompress.c', 'dictBuilder/cover.c', 'dictBuilder/divsufsort.c', 'dictBuilder/zdict.c', )] zstd_sources_legacy = ['zstd/%s' % p for p in ( 'deprecated/zbuff_common.c', 'deprecated/zbuff_compress.c', 'deprecated/zbuff_decompress.c', 'legacy/zstd_v01.c', 'legacy/zstd_v02.c', 'legacy/zstd_v03.c', 'legacy/zstd_v04.c', 'legacy/zstd_v05.c', 'legacy/zstd_v06.c', 'legacy/zstd_v07.c' )] zstd_includes = [ 'c-ext', 'zstd', 'zstd/common', 'zstd/compress', 'zstd/decompress', 'zstd/dictBuilder', ] zstd_includes_legacy = [ 'zstd/deprecated', 'zstd/legacy', ] ext_sources = [ 'zstd.c', 'c-ext/compressiondict.c', 'c-ext/compressobj.c', 'c-ext/compressor.c', 'c-ext/compressoriterator.c', 'c-ext/compressionparams.c', 'c-ext/compressionwriter.c', 'c-ext/constants.c', 'c-ext/decompressobj.c', 'c-ext/decompressor.c', 'c-ext/decompressoriterator.c', 'c-ext/decompressionwriter.c', 'c-ext/dictparams.c', 'c-ext/frameparams.c', ] zstd_depends = [ 'c-ext/python-zstandard.h', ] def get_c_extension(support_legacy=False, name='zstd'): """Obtain a distutils.extension.Extension for the C extension.""" root = os.path.abspath(os.path.dirname(__file__)) sources = [os.path.join(root, p) for p in zstd_sources + ext_sources] if support_legacy: sources.extend([os.path.join(root, p) for p in zstd_sources_legacy]) include_dirs = [os.path.join(root, d) for d in zstd_includes] if support_legacy: include_dirs.extend([os.path.join(root, d) for d in zstd_includes_legacy]) depends = [os.path.join(root, p) for p in zstd_depends] # TODO compile with optimizations. return Extension(name, sources, include_dirs=include_dirs, depends=depends, extra_compile_args=["-DZSTD_LEGACY_SUPPORT=1"] if support_legacy else [])