107 lines
3 KiB
Python
107 lines
3 KiB
Python
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
|
# vim: set filetype=python:
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
with Files('**'):
|
|
BUG_COMPONENT = ('Core', 'Networking')
|
|
|
|
EXPORTS.zstd += [
|
|
'lib/zstd.h',
|
|
'lib/zstd_errors.h',
|
|
]
|
|
|
|
UNIFIED_SOURCES += [
|
|
'lib/common/debug.c',
|
|
'lib/common/entropy_common.c',
|
|
'lib/common/error_private.c',
|
|
'lib/common/fse_decompress.c',
|
|
'lib/common/pool.c',
|
|
'lib/common/threading.c',
|
|
'lib/common/xxhash.c',
|
|
'lib/common/zstd_common.c',
|
|
'lib/decompress/huf_decompress.c',
|
|
'lib/decompress/zstd_ddict.c',
|
|
'lib/decompress/zstd_decompress.c',
|
|
'lib/decompress/zstd_decompress_block.c',
|
|
]
|
|
|
|
# we aren't using these currently
|
|
#COMPRESS_SOURCES = [
|
|
# 'lib/compress/fse_compress.c',
|
|
# 'lib/compress/hist.c',
|
|
# 'lib/compress/huf_compress.c',
|
|
# 'lib/compress/zstd_compress.c',
|
|
# 'lib/compress/zstd_compress_literals.c',
|
|
# 'lib/compress/zstd_compress_sequences.c',
|
|
# 'lib/compress/zstd_compress_superblock.c',
|
|
# 'lib/compress/zstd_double_fast.c',
|
|
# 'lib/compress/zstd_fast.c',
|
|
# 'lib/compress/zstd_lazy.c',
|
|
# 'lib/compress/zstd_ldm.c',
|
|
# 'lib/compress/zstd_opt.c',
|
|
# 'lib/compress/zstdmt_compress.c',
|
|
#]
|
|
|
|
CFLAGS += [
|
|
'-Wextra',
|
|
'-Wcast-qual',
|
|
'-Wcast-align',
|
|
'-Wshadow',
|
|
'-Wstrict-aliasing=1',
|
|
'-Wswitch-enum',
|
|
'-Wdeclaration-after-statement',
|
|
'-Wstrict-prototypes',
|
|
'-Wundef',
|
|
'-Wpointer-arith',
|
|
'-Wvla',
|
|
'-Wformat=2',
|
|
'-Winit-self',
|
|
'-Wfloat-equal',
|
|
'-Wwrite-strings',
|
|
'-Wredundant-decls',
|
|
'-Wmissing-prototypes',
|
|
'-Wc++-compat'
|
|
]
|
|
|
|
CXXFLAGS += [
|
|
'-DXXH_NAMESPACE=ZSTD_',
|
|
'-DDEBUGLEVEL=0',
|
|
'-DZSTD_MULTITHREAD=1',
|
|
]
|
|
|
|
LOCAL_INCLUDES += [ 'lib/decompress' ]
|
|
|
|
# .S assembler format is incompatible with Microsoft MASM, disable for now
|
|
if CONFIG["OS_ARCH"] == "WINNT":
|
|
DEFINES["ZSTD_DISABLE_ASM"] = 1
|
|
else:
|
|
# If the assembler format is made compatible, we still need to preprocess it
|
|
if CONFIG["TARGET_CPU"] == "x86_64" and CONFIG["OS_ARCH"] == "WINNT":
|
|
if CONFIG["CC_TYPE"] == "clang-cl":
|
|
# libffi asm needs to be preprocessed for MSVC's assembler
|
|
GeneratedFile("win64_intel.asm",
|
|
inputs=[
|
|
"lib/decompress/huf_decompress_amd64.S",
|
|
],
|
|
script="preprocess_asm.py",
|
|
flags=["$(DEFINES)", "$(LOCAL_INCLUDES)"],
|
|
)
|
|
SOURCES += ["!win64_intel.asm"]
|
|
else:
|
|
SOURCES += [
|
|
'lib/decompress/huf_decompress_amd64.S',
|
|
]
|
|
else:
|
|
SOURCES += [
|
|
'lib/decompress/huf_decompress_amd64.S',
|
|
]
|
|
|
|
# We allow warnings for third-party code that can be updated from upstream.
|
|
AllowCompilerWarnings()
|
|
|
|
Library('zstd')
|
|
|
|
FINAL_LIBRARY = 'xul'
|
|
|