feat: 9.5.9
This commit is contained in:
parent
cb1753732b
commit
35f43a7909
1084 changed files with 558985 additions and 0 deletions
34
lz4/contrib/meson/README.md
Normal file
34
lz4/contrib/meson/README.md
Normal file
|
@ -0,0 +1,34 @@
|
|||
Meson build system for lz4
|
||||
==========================
|
||||
|
||||
Meson is a build system designed to optimize programmer productivity.
|
||||
It aims to do this by providing simple, out-of-the-box support for
|
||||
modern software development tools and practices, such as unit tests,
|
||||
coverage reports, Valgrind, CCache and the like.
|
||||
|
||||
This Meson build system is provided with no guarantee.
|
||||
|
||||
## How to build
|
||||
|
||||
`cd` to this meson directory (`contrib/meson`)
|
||||
|
||||
```sh
|
||||
meson setup --buildtype=release -Ddefault_library=shared -Dbin_programs=true builddir
|
||||
cd builddir
|
||||
ninja # to build
|
||||
ninja install # to install
|
||||
```
|
||||
|
||||
You might want to install it in staging directory:
|
||||
|
||||
```sh
|
||||
DESTDIR=./staging ninja install
|
||||
```
|
||||
|
||||
To configure build options, use:
|
||||
|
||||
```sh
|
||||
meson configure
|
||||
```
|
||||
|
||||
See [man meson(1)](https://manpages.debian.org/testing/meson/meson.1.en.html).
|
21
lz4/contrib/meson/meson.build
Normal file
21
lz4/contrib/meson/meson.build
Normal file
|
@ -0,0 +1,21 @@
|
|||
# #############################################################################
|
||||
# Copyright (c) 2018-present 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).
|
||||
# #############################################################################
|
||||
|
||||
# This is a dummy meson file.
|
||||
# The intention is that it can be easily moved to the root of the project
|
||||
# (together with meson_options.txt) and packaged for wrapdb.
|
||||
|
||||
project('lz4', ['c'],
|
||||
license: ['BSD', 'GPLv2'],
|
||||
default_options : ['c_std=c99',
|
||||
'buildtype=release'],
|
||||
version: 'DUMMY',
|
||||
meson_version: '>=0.47.0')
|
||||
|
||||
subdir('meson')
|
39
lz4/contrib/meson/meson/GetLz4LibraryVersion.py
Normal file
39
lz4/contrib/meson/meson/GetLz4LibraryVersion.py
Normal file
|
@ -0,0 +1,39 @@
|
|||
#!/usr/bin/env python3
|
||||
# #############################################################################
|
||||
# Copyright (c) 2018-present 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).
|
||||
# #############################################################################
|
||||
import re
|
||||
|
||||
|
||||
def find_version_tuple(filepath):
|
||||
version_file_data = None
|
||||
with open(filepath) as fd:
|
||||
version_file_data = fd.read()
|
||||
|
||||
patterns = r"""#\s*define\s+LZ4_VERSION_MAJOR\s+([0-9]+).*$
|
||||
#\s*define\s+LZ4_VERSION_MINOR\s+([0-9]+).*$
|
||||
#\s*define\s+LZ4_VERSION_RELEASE\s+([0-9]+).*$
|
||||
"""
|
||||
regex = re.compile(patterns, re.MULTILINE)
|
||||
version_match = regex.search(version_file_data)
|
||||
if version_match:
|
||||
return version_match.groups()
|
||||
raise Exception("Unable to find version string.")
|
||||
|
||||
|
||||
def main():
|
||||
import argparse
|
||||
parser = argparse.ArgumentParser(description='Print lz4 version from lib/lz4.h')
|
||||
parser.add_argument('file', help='path to lib/lz4.h')
|
||||
args = parser.parse_args()
|
||||
version_tuple = find_version_tuple(args.file)
|
||||
print('.'.join(version_tuple))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
55
lz4/contrib/meson/meson/InstallSymlink.py
Normal file
55
lz4/contrib/meson/meson/InstallSymlink.py
Normal file
|
@ -0,0 +1,55 @@
|
|||
#!/usr/bin/env python3
|
||||
# #############################################################################
|
||||
# Copyright (c) 2018-present 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).
|
||||
# #############################################################################
|
||||
# This file should be synced with https://github.com/lzutao/meson-symlink
|
||||
|
||||
import os
|
||||
import pathlib # since Python 3.4
|
||||
|
||||
|
||||
def install_symlink(src, dst, install_dir, dst_is_dir=False, dir_mode=0o777):
|
||||
if not install_dir.exists():
|
||||
install_dir.mkdir(mode=dir_mode, parents=True, exist_ok=True)
|
||||
if not install_dir.is_dir():
|
||||
raise NotADirectoryError(install_dir)
|
||||
|
||||
new_dst = install_dir.joinpath(dst)
|
||||
if new_dst.is_symlink() and os.readlink(new_dst) == src:
|
||||
print('File exists: {!r} -> {!r}'.format(new_dst, src))
|
||||
return
|
||||
print('Installing symlink {!r} -> {!r}'.format(new_dst, src))
|
||||
new_dst.symlink_to(src, target_is_directory=dst_is_dir)
|
||||
|
||||
|
||||
def main():
|
||||
import argparse
|
||||
parser = argparse.ArgumentParser(description='Install a symlink',
|
||||
usage='{0} [-h] [-d] [-m MODE] source dest install_dir\n\n'
|
||||
'example:\n'
|
||||
' {0} dash sh /bin'.format(pathlib.Path(__file__).name))
|
||||
parser.add_argument('source', help='target to link')
|
||||
parser.add_argument('dest', help='link name')
|
||||
parser.add_argument('install_dir', help='installation directory')
|
||||
parser.add_argument('-d', '--isdir',
|
||||
action='store_true',
|
||||
help='dest is a directory')
|
||||
parser.add_argument('-m', '--mode',
|
||||
help='directory mode on creating if not exist',
|
||||
default='0o755')
|
||||
args = parser.parse_args()
|
||||
|
||||
dir_mode = int(args.mode, 8)
|
||||
|
||||
meson_destdir = os.environ.get('MESON_INSTALL_DESTDIR_PREFIX', default='')
|
||||
install_dir = pathlib.Path(meson_destdir, args.install_dir)
|
||||
install_symlink(args.source, args.dest, install_dir, args.isdir, dir_mode)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
43
lz4/contrib/meson/meson/contrib/gen_manual/meson.build
Normal file
43
lz4/contrib/meson/meson/contrib/gen_manual/meson.build
Normal file
|
@ -0,0 +1,43 @@
|
|||
# #############################################################################
|
||||
# Copyright (c) 2018-present 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).
|
||||
# #############################################################################
|
||||
|
||||
lz4_root_dir = '../../../../..'
|
||||
|
||||
add_languages('cpp')
|
||||
cxx = meson.get_compiler('cpp')
|
||||
|
||||
gen_manual_includes = include_directories(join_paths(lz4_root_dir, 'contrib/gen_manual'))
|
||||
|
||||
gen_manual_cppflags = cxx.get_supported_arguments(['-Wextra', '-Wcast-qual',
|
||||
'-Wcast-align', '-Wshadow', '-Wstrict-aliasing=1', '-Wswitch-enum',
|
||||
'-Wno-comment'])
|
||||
|
||||
gen_manual = executable('gen_manual',
|
||||
join_paths(lz4_root_dir, 'contrib/gen_manual/gen_manual.cpp'),
|
||||
cpp_args: gen_manual_cppflags,
|
||||
include_directories: gen_manual_includes,
|
||||
native: true,
|
||||
install: false)
|
||||
|
||||
# Update lz4 manual
|
||||
lz4_manual_html = custom_target('lz4_manual.html',
|
||||
output : 'lz4_manual.html',
|
||||
command : [gen_manual,
|
||||
lz4_version,
|
||||
join_paths(meson.current_source_dir(), lz4_root_dir, 'lib/lz4.h'),
|
||||
'@OUTPUT@'],
|
||||
install : false)
|
||||
# Update lz4frame manual
|
||||
lz4_manual_html = custom_target('lz4frame_manual.html',
|
||||
output : 'lz4frame_manual.html',
|
||||
command : [gen_manual,
|
||||
lz4_version,
|
||||
join_paths(meson.current_source_dir(), lz4_root_dir, 'lib/lz4frame.h'),
|
||||
'@OUTPUT@'],
|
||||
install : false)
|
10
lz4/contrib/meson/meson/contrib/meson.build
Normal file
10
lz4/contrib/meson/meson/contrib/meson.build
Normal file
|
@ -0,0 +1,10 @@
|
|||
# #############################################################################
|
||||
# Copyright (c) 2018-present 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).
|
||||
# #############################################################################
|
||||
|
||||
subdir('gen_manual')
|
49
lz4/contrib/meson/meson/examples/meson.build
Normal file
49
lz4/contrib/meson/meson/examples/meson.build
Normal file
|
@ -0,0 +1,49 @@
|
|||
# #############################################################################
|
||||
# Copyright (c) 2018-present 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).
|
||||
# #############################################################################
|
||||
|
||||
lz4_root_dir = '../../../..'
|
||||
|
||||
#examples_c_args = ['-Wextra', '-Wundef', '-Wshadow', '-Wcast-align', '-Wstrict-prototypes']
|
||||
|
||||
printVersion = executable('printVersion',
|
||||
join_paths(lz4_root_dir, 'examples/printVersion.c'),
|
||||
dependencies: liblz4_dep,
|
||||
install: false)
|
||||
doubleBuffer = executable('doubleBuffer',
|
||||
join_paths(lz4_root_dir, 'examples/blockStreaming_doubleBuffer.c'),
|
||||
dependencies: liblz4_dep,
|
||||
install: false)
|
||||
dictionaryRandomAccess = executable('dictionaryRandomAccess',
|
||||
join_paths(lz4_root_dir, 'examples/dictionaryRandomAccess.c'),
|
||||
dependencies: liblz4_dep,
|
||||
install: false)
|
||||
ringBuffer = executable('ringBuffer',
|
||||
join_paths(lz4_root_dir, 'examples/blockStreaming_ringBuffer.c'),
|
||||
dependencies: liblz4_dep,
|
||||
install: false)
|
||||
ringBufferHC = executable('ringBufferHC',
|
||||
join_paths(lz4_root_dir, 'examples/HCStreaming_ringBuffer.c'),
|
||||
dependencies: liblz4_dep,
|
||||
install: false)
|
||||
lineCompress = executable('lineCompress',
|
||||
join_paths(lz4_root_dir, 'examples/blockStreaming_lineByLine.c'),
|
||||
dependencies: liblz4_dep,
|
||||
install: false)
|
||||
frameCompress = executable('frameCompress',
|
||||
join_paths(lz4_root_dir, 'examples/frameCompress.c'),
|
||||
dependencies: liblz4_dep,
|
||||
install: false)
|
||||
compressFunctions = executable('compressFunctions',
|
||||
join_paths(lz4_root_dir, 'examples/compress_functions.c'),
|
||||
dependencies: liblz4_dep,
|
||||
install: false)
|
||||
simpleBuffer = executable('simpleBuffer',
|
||||
join_paths(lz4_root_dir, 'examples/simple_buffer.c'),
|
||||
dependencies: liblz4_dep,
|
||||
install: false)
|
57
lz4/contrib/meson/meson/lib/meson.build
Normal file
57
lz4/contrib/meson/meson/lib/meson.build
Normal file
|
@ -0,0 +1,57 @@
|
|||
# #############################################################################
|
||||
# Copyright (c) 2018-present 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).
|
||||
# #############################################################################
|
||||
|
||||
lz4_root_dir = '../../../..'
|
||||
|
||||
liblz4_includes = [include_directories(join_paths(lz4_root_dir, 'lib'))]
|
||||
liblz4_sources = [join_paths(lz4_root_dir, 'lib/lz4.c'),
|
||||
join_paths(lz4_root_dir, 'lib/lz4frame.c'),
|
||||
join_paths(lz4_root_dir, 'lib/lz4hc.c'),
|
||||
join_paths(lz4_root_dir, 'lib/xxhash.c')]
|
||||
liblz4_c_args = []
|
||||
|
||||
liblz4_debug_cflags = []
|
||||
if use_debug
|
||||
liblz4_c_args += '-DLZ4_DEBUG=@0@'.format(debug_level)
|
||||
if [compiler_gcc, compiler_clang].contains(cc_id)
|
||||
liblz4_debug_cflags = ['-Wextra', '-Wcast-qual', '-Wcast-align', '-Wshadow',
|
||||
'-Wswitch-enum', '-Wdeclaration-after-statement', '-Wstrict-prototypes',
|
||||
'-Wundef', '-Wpointer-arith', '-Wstrict-aliasing=1']
|
||||
endif
|
||||
endif
|
||||
liblz4_c_args += cc.get_supported_arguments(liblz4_debug_cflags)
|
||||
|
||||
if host_machine_os == os_windows and default_library != 'static'
|
||||
liblz4_c_args += '-DLZ4_DLL_EXPORT=1'
|
||||
endif
|
||||
|
||||
liblz4 = library('lz4',
|
||||
liblz4_sources,
|
||||
include_directories: liblz4_includes,
|
||||
c_args: liblz4_c_args,
|
||||
install: true,
|
||||
version: lz4_libversion)
|
||||
|
||||
liblz4_dep = declare_dependency(link_with: liblz4,
|
||||
include_directories: liblz4_includes)
|
||||
|
||||
pkgconfig.generate(liblz4,
|
||||
name: 'lz4',
|
||||
filebase: 'liblz4',
|
||||
description: 'extremely fast lossless compression algorithm library',
|
||||
version: lz4_libversion,
|
||||
url: 'http://www.lz4.org/')
|
||||
|
||||
install_headers(join_paths(lz4_root_dir, 'lib/lz4.h'),
|
||||
join_paths(lz4_root_dir, 'lib/lz4hc.h'),
|
||||
join_paths(lz4_root_dir, 'lib/lz4frame.h'))
|
||||
|
||||
if default_library != 'shared'
|
||||
install_headers(join_paths(lz4_root_dir, 'lib/lz4frame_static.h'))
|
||||
endif
|
117
lz4/contrib/meson/meson/meson.build
Normal file
117
lz4/contrib/meson/meson/meson.build
Normal file
|
@ -0,0 +1,117 @@
|
|||
# #############################################################################
|
||||
# Copyright (c) 2018-present 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).
|
||||
# #############################################################################
|
||||
|
||||
cc = meson.get_compiler('c')
|
||||
pkgconfig = import('pkgconfig')
|
||||
c_std = get_option('c_std')
|
||||
default_library = get_option('default_library')
|
||||
|
||||
host_machine_os = host_machine.system()
|
||||
os_windows = 'windows'
|
||||
os_linux = 'linux'
|
||||
os_darwin = 'darwin'
|
||||
os_freebsd = 'freebsd'
|
||||
os_sun = 'sunos'
|
||||
|
||||
cc_id = cc.get_id()
|
||||
compiler_gcc = 'gcc'
|
||||
compiler_clang = 'clang'
|
||||
compiler_msvc = 'msvc'
|
||||
|
||||
lz4_version = meson.project_version()
|
||||
|
||||
lz4_h_file = join_paths(meson.current_source_dir(), '../../../lib/lz4.h')
|
||||
GetLz4LibraryVersion_py = find_program('GetLz4LibraryVersion.py', native : true)
|
||||
r = run_command(GetLz4LibraryVersion_py, lz4_h_file)
|
||||
if r.returncode() == 0
|
||||
lz4_version = r.stdout().strip()
|
||||
message('Project version is now: @0@'.format(lz4_version))
|
||||
else
|
||||
error('Cannot find project version in @0@'.format(lz4_h_file))
|
||||
endif
|
||||
|
||||
lz4_libversion = lz4_version
|
||||
|
||||
# =============================================================================
|
||||
# Installation directories
|
||||
# =============================================================================
|
||||
|
||||
lz4_prefix = get_option('prefix')
|
||||
lz4_bindir = get_option('bindir')
|
||||
lz4_datadir = get_option('datadir')
|
||||
lz4_mandir = get_option('mandir')
|
||||
lz4_docdir = join_paths(lz4_datadir, 'doc', meson.project_name())
|
||||
|
||||
# =============================================================================
|
||||
# Project options
|
||||
# =============================================================================
|
||||
|
||||
buildtype = get_option('buildtype')
|
||||
|
||||
# Built-in options
|
||||
use_debug = get_option('debug')
|
||||
|
||||
# Custom options
|
||||
debug_level = get_option('debug_level')
|
||||
use_backtrace = get_option('backtrace')
|
||||
|
||||
bin_programs = get_option('bin_programs')
|
||||
bin_contrib = get_option('bin_contrib')
|
||||
bin_tests = get_option('bin_tests')
|
||||
bin_examples = get_option('bin_examples')
|
||||
#feature_multi_thread = get_option('multi_thread')
|
||||
|
||||
# =============================================================================
|
||||
# Dependencies
|
||||
# =============================================================================
|
||||
|
||||
#libm_dep = cc.find_library('m', required: bin_tests)
|
||||
#thread_dep = dependency('threads', required: feature_multi_thread)
|
||||
#use_multi_thread = thread_dep.found()
|
||||
|
||||
# =============================================================================
|
||||
# Compiler flags
|
||||
# =============================================================================
|
||||
|
||||
add_project_arguments(['-DXXH_NAMESPACE=LZ4_'], language: 'c')
|
||||
|
||||
if [compiler_gcc, compiler_clang].contains(cc_id)
|
||||
common_warning_flags = []
|
||||
# Should use Meson's own --werror build option
|
||||
#common_warning_flags += ['-Werror']
|
||||
if c_std == 'c89' or c_std == 'gnu89'
|
||||
common_warning_flags += ['-pedantic', '-Wno-long-long', '-Wno-variadic-macros']
|
||||
elif c_std == 'c99' or c_std == 'gnu99'
|
||||
common_warning_flags += ['-pedantic']
|
||||
endif
|
||||
cc_compile_flags = cc.get_supported_arguments(common_warning_flags)
|
||||
add_project_arguments(cc_compile_flags, language: 'c')
|
||||
endif
|
||||
|
||||
# =============================================================================
|
||||
# Subdirs
|
||||
# =============================================================================
|
||||
|
||||
subdir('lib')
|
||||
|
||||
if bin_programs
|
||||
subdir('programs')
|
||||
endif
|
||||
|
||||
if bin_tests
|
||||
subdir('tests')
|
||||
endif
|
||||
|
||||
if bin_contrib
|
||||
subdir('contrib')
|
||||
endif
|
||||
|
||||
if bin_examples
|
||||
subdir('examples')
|
||||
endif
|
52
lz4/contrib/meson/meson/programs/meson.build
Normal file
52
lz4/contrib/meson/meson/programs/meson.build
Normal file
|
@ -0,0 +1,52 @@
|
|||
# #############################################################################
|
||||
# Copyright (c) 2018-present 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).
|
||||
# #############################################################################
|
||||
|
||||
lz4_root_dir = '../../../..'
|
||||
|
||||
lz4_includes = include_directories(join_paths(lz4_root_dir, 'programs'))
|
||||
lz4_sources = [join_paths(lz4_root_dir, 'programs/bench.c'),
|
||||
join_paths(lz4_root_dir, 'programs/datagen.c'),
|
||||
join_paths(lz4_root_dir, 'programs/lz4cli.c'),
|
||||
join_paths(lz4_root_dir, 'programs/lz4io.c')]
|
||||
lz4_c_args = []
|
||||
|
||||
export_dynamic_on_windows = false
|
||||
# explicit backtrace enable/disable for Linux & Darwin
|
||||
if not use_backtrace
|
||||
lz4_c_args += '-DBACKTRACE_ENABLE=0'
|
||||
elif use_debug and host_machine_os == os_windows # MinGW target
|
||||
lz4_c_args += '-DBACKTRACE_ENABLE=1'
|
||||
export_dynamic_on_windows = true
|
||||
endif
|
||||
|
||||
lz4_deps = [ liblz4_dep ]
|
||||
|
||||
lz4 = executable('lz4',
|
||||
lz4_sources,
|
||||
include_directories: lz4_includes,
|
||||
c_args: lz4_c_args,
|
||||
dependencies: lz4_deps,
|
||||
export_dynamic: export_dynamic_on_windows, # Since Meson 0.45.0
|
||||
install: true)
|
||||
|
||||
# =============================================================================
|
||||
# Programs and manpages installing
|
||||
# =============================================================================
|
||||
|
||||
install_man(join_paths(lz4_root_dir, 'programs/lz4.1'))
|
||||
|
||||
InstallSymlink_py = '../InstallSymlink.py'
|
||||
lz4_man1_dir = join_paths(lz4_mandir, 'man1')
|
||||
bin_EXT = host_machine_os == os_windows ? '.exe' : ''
|
||||
man1_EXT = meson.version().version_compare('>=0.49.0') ? '.1' : '.1.gz'
|
||||
|
||||
foreach f : ['lz4c', 'lz4cat', 'unlz4']
|
||||
meson.add_install_script(InstallSymlink_py, 'lz4' + bin_EXT, f + bin_EXT, lz4_bindir)
|
||||
meson.add_install_script(InstallSymlink_py, 'lz4' + man1_EXT, f + man1_EXT, lz4_man1_dir)
|
||||
endforeach
|
93
lz4/contrib/meson/meson/tests/meson.build
Normal file
93
lz4/contrib/meson/meson/tests/meson.build
Normal file
|
@ -0,0 +1,93 @@
|
|||
# #############################################################################
|
||||
# Copyright (c) 2018-present 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).
|
||||
# #############################################################################
|
||||
|
||||
lz4_root_dir = '../../../..'
|
||||
programs_dir_inc = include_directories(join_paths(lz4_root_dir, 'programs'))
|
||||
lib_dir_inc = include_directories(join_paths(lz4_root_dir, 'lib'))
|
||||
|
||||
# =============================================================================
|
||||
# Test flags
|
||||
# =============================================================================
|
||||
|
||||
TEST_FILES = join_paths(meson.current_source_dir(), lz4_root_dir, 'tests/COPYING')
|
||||
FUZZER_TIME = '-T90s'
|
||||
NB_LOOPS = '-i1'
|
||||
|
||||
# =============================================================================
|
||||
# Executables
|
||||
# =============================================================================
|
||||
|
||||
fullbench_sources = [join_paths(lz4_root_dir, 'tests/fullbench.c')]
|
||||
fullbench = executable('fullbench',
|
||||
fullbench_sources,
|
||||
include_directories: programs_dir_inc,
|
||||
dependencies: liblz4_dep,
|
||||
install: false)
|
||||
|
||||
fuzzer_sources = [join_paths(lz4_root_dir, 'tests/fuzzer.c')]
|
||||
fuzzer = executable('fuzzer',
|
||||
fuzzer_sources,
|
||||
c_args: ['-D_DEFAULT_SOURCE', '-D_BSD_SOURCE'], # since glibc 2.19
|
||||
include_directories: programs_dir_inc,
|
||||
dependencies: liblz4_dep,
|
||||
install: false)
|
||||
|
||||
frametest_sources = [join_paths(lz4_root_dir, 'tests/frametest.c')]
|
||||
frametest = executable('frametest',
|
||||
frametest_sources,
|
||||
include_directories: programs_dir_inc,
|
||||
dependencies: liblz4_dep,
|
||||
install: false)
|
||||
|
||||
roundTripTest_sources = [join_paths(lz4_root_dir, 'tests/roundTripTest.c')]
|
||||
roundTripTest = executable('roundTripTest',
|
||||
roundTripTest_sources,
|
||||
dependencies: [ liblz4_dep ],
|
||||
install: false)
|
||||
|
||||
datagen_sources = [join_paths(lz4_root_dir, 'tests/datagencli.c')]
|
||||
datagen = executable('datagen',
|
||||
datagen_sources,
|
||||
objects: lz4.extract_objects(join_paths(lz4_root_dir, 'programs/datagen.c')),
|
||||
include_directories: lz4_includes,
|
||||
dependencies: [ liblz4_dep ],
|
||||
install: false)
|
||||
|
||||
checkFrame_sources = [join_paths(lz4_root_dir, 'tests/checkFrame.c')]
|
||||
checkFrame = executable('checkFrame',
|
||||
checkFrame_sources,
|
||||
include_directories: programs_dir_inc,
|
||||
dependencies: [ liblz4_dep ],
|
||||
install: false)
|
||||
|
||||
checkTag_sources = [join_paths(lz4_root_dir, 'tests/checkTag.c')]
|
||||
checkTag = executable('checkTag',
|
||||
checkTag_sources,
|
||||
include_directories: lib_dir_inc,
|
||||
install: false)
|
||||
|
||||
# =============================================================================
|
||||
# Tests (Use "meson test --list" to list all tests)
|
||||
# =============================================================================
|
||||
|
||||
# XXX: (Need TEST) These timeouts (in seconds) when running on a HDD should be
|
||||
# at least six times bigger than on a SSD
|
||||
|
||||
test('test-fullbench',
|
||||
fullbench,
|
||||
args: ['--no-prompt', NB_LOOPS, TEST_FILES],
|
||||
timeout: 420) # Should enough when running on HDD
|
||||
test('test-fuzzer',
|
||||
fuzzer,
|
||||
args: [FUZZER_TIME],
|
||||
timeout: 100)
|
||||
test('test-frametest',
|
||||
frametest,
|
||||
args: [FUZZER_TIME],
|
||||
timeout: 100)
|
24
lz4/contrib/meson/meson_options.txt
Normal file
24
lz4/contrib/meson/meson_options.txt
Normal file
|
@ -0,0 +1,24 @@
|
|||
# #############################################################################
|
||||
# Copyright (c) 2018-present 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).
|
||||
# #############################################################################
|
||||
|
||||
# Read guidelines from https://wiki.gnome.org/Initiatives/GnomeGoals/MesonPorting
|
||||
|
||||
option('debug_level', type: 'integer', min: 0, max: 7, value: 1,
|
||||
description: 'Enable run-time debug. See lib/lz4hc.c')
|
||||
option('backtrace', type: 'boolean', value: false,
|
||||
description: 'Display a stack backtrace when execution generates a runtime exception')
|
||||
|
||||
option('bin_programs', type: 'boolean', value: false,
|
||||
description: 'Enable programs build')
|
||||
option('bin_tests', type: 'boolean', value: false,
|
||||
description: 'Enable tests build')
|
||||
option('bin_contrib', type: 'boolean', value: false,
|
||||
description: 'Enable contrib build')
|
||||
option('bin_examples', type: 'boolean', value: false,
|
||||
description: 'Enable examples build')
|
Reference in a new issue