mirror of
https://github.com/facebook/zstd.git
synced 2025-08-08 17:22:10 +03:00
In commit 031de3c69c
some code was added
that returned a boolean, but was treated as if it returned a dependency
object. This wasn't tested and could not work. Moreover, zstd no longer
built at all unless the entire programs directory was disabled and not
even evaluated.
Fix the return type checking.
117 lines
4.2 KiB
Meson
117 lines
4.2 KiB
Meson
# #############################################################################
|
|
# Copyright (c) 2018-present Dima Krasner <dima@dimakrasner.com>
|
|
# lzutao <taolzu(at)gmail.com>
|
|
# All rights reserved.
|
|
#
|
|
# This source code is licensed under both the BSD-style license (found in the
|
|
# LICENSE file in the root directory of this source tree) and the GPLv2 (found
|
|
# in the COPYING file in the root directory of this source tree).
|
|
# #############################################################################
|
|
|
|
zstd_rootdir = '../../..'
|
|
|
|
zstd_programs_sources = [join_paths(zstd_rootdir, 'programs/zstdcli.c'),
|
|
join_paths(zstd_rootdir, 'programs/util.c'),
|
|
join_paths(zstd_rootdir, 'programs/timefn.c'),
|
|
join_paths(zstd_rootdir, 'programs/fileio.c'),
|
|
join_paths(zstd_rootdir, 'programs/fileio_asyncio.c'),
|
|
join_paths(zstd_rootdir, 'programs/benchfn.c'),
|
|
join_paths(zstd_rootdir, 'programs/benchzstd.c'),
|
|
join_paths(zstd_rootdir, 'programs/datagen.c'),
|
|
join_paths(zstd_rootdir, 'programs/dibio.c'),
|
|
join_paths(zstd_rootdir, 'programs/zstdcli_trace.c')]
|
|
|
|
zstd_deps = [ libzstd_internal_dep ]
|
|
zstd_c_args = libzstd_debug_cflags
|
|
|
|
zstd_frugal_deps = [ libzstd_internal_dep ]
|
|
zstd_frugal_c_args = [ '-DZSTD_NOBENCH', '-DZSTD_NODICT', '-DZSTD_NOTRACE' ]
|
|
|
|
if use_multi_thread
|
|
zstd_deps += [ thread_dep ]
|
|
zstd_c_args += [ '-DZSTD_MULTITHREAD' ]
|
|
zstd_frugal_deps += [ thread_dep ]
|
|
zstd_frugal_c_args += [ '-DZSTD_MULTITHREAD' ]
|
|
endif
|
|
|
|
if use_zlib
|
|
zstd_deps += [ zlib_dep ]
|
|
zstd_c_args += [ '-DZSTD_GZCOMPRESS', '-DZSTD_GZDECOMPRESS' ]
|
|
endif
|
|
|
|
if use_lzma
|
|
zstd_deps += [ lzma_dep ]
|
|
zstd_c_args += [ '-DZSTD_LZMACOMPRESS', '-DZSTD_LZMADECOMPRESS' ]
|
|
endif
|
|
|
|
if use_lz4
|
|
zstd_deps += [ lz4_dep ]
|
|
zstd_c_args += [ '-DZSTD_LZ4COMPRESS', '-DZSTD_LZ4DECOMPRESS' ]
|
|
endif
|
|
|
|
export_dynamic_on_windows = false
|
|
# explicit backtrace enable/disable for Linux & Darwin
|
|
have_execinfo = cc.has_header('execinfo.h', required: use_backtrace)
|
|
if not have_execinfo
|
|
zstd_c_args += '-DBACKTRACE_ENABLE=0'
|
|
elif use_debug and host_machine_os == os_windows # MinGW target
|
|
zstd_c_args += '-DBACKTRACE_ENABLE=1'
|
|
export_dynamic_on_windows = true
|
|
endif
|
|
|
|
if cc_id == compiler_msvc
|
|
if default_library_type != 'static'
|
|
zstd_programs_sources += [windows_mod.compile_resources(
|
|
join_paths(zstd_rootdir, 'build/VS2010/zstd/zstd.rc'),
|
|
include_directories: libzstd_includes)]
|
|
endif
|
|
endif
|
|
|
|
zstd = executable('zstd',
|
|
zstd_programs_sources,
|
|
c_args: zstd_c_args,
|
|
dependencies: zstd_deps,
|
|
export_dynamic: export_dynamic_on_windows, # Since Meson 0.45.0
|
|
install: true)
|
|
|
|
zstd_frugal_sources = [join_paths(zstd_rootdir, 'programs/zstdcli.c'),
|
|
join_paths(zstd_rootdir, 'programs/timefn.c'),
|
|
join_paths(zstd_rootdir, 'programs/util.c'),
|
|
join_paths(zstd_rootdir, 'programs/fileio.c'),
|
|
join_paths(zstd_rootdir, 'programs/fileio_asyncio.c')]
|
|
|
|
# Minimal target, with only zstd compression and decompression.
|
|
# No bench. No legacy.
|
|
executable('zstd-frugal',
|
|
zstd_frugal_sources,
|
|
dependencies: zstd_frugal_deps,
|
|
c_args: zstd_frugal_c_args,
|
|
install: true)
|
|
|
|
install_data(join_paths(zstd_rootdir, 'programs/zstdgrep'),
|
|
join_paths(zstd_rootdir, 'programs/zstdless'),
|
|
install_dir: zstd_bindir)
|
|
|
|
# =============================================================================
|
|
# Programs and manpages installing
|
|
# =============================================================================
|
|
|
|
install_man(join_paths(zstd_rootdir, 'programs/zstd.1'),
|
|
join_paths(zstd_rootdir, 'programs/zstdgrep.1'),
|
|
join_paths(zstd_rootdir, 'programs/zstdless.1'))
|
|
|
|
InstallSymlink_py = '../InstallSymlink.py'
|
|
zstd_man1_dir = join_paths(zstd_mandir, 'man1')
|
|
bin_EXT = host_machine_os == os_windows ? '.exe' : ''
|
|
man1_EXT = meson.version().version_compare('>=0.49.0') ? '.1' : '.1.gz'
|
|
|
|
foreach f : ['zstdcat', 'unzstd']
|
|
meson.add_install_script(InstallSymlink_py, 'zstd' + bin_EXT, f + bin_EXT, zstd_bindir)
|
|
meson.add_install_script(InstallSymlink_py, 'zstd' + man1_EXT, f + man1_EXT, zstd_man1_dir)
|
|
endforeach
|
|
|
|
if use_multi_thread
|
|
meson.add_install_script(InstallSymlink_py, 'zstd' + bin_EXT, 'zstdmt' + bin_EXT, zstd_bindir)
|
|
meson.add_install_script(InstallSymlink_py, 'zstd' + man1_EXT, 'zstdmt' + man1_EXT, zstd_man1_dir)
|
|
endif
|