1
0
mirror of https://github.com/lz4/lz4.git synced 2026-10-24 01:48:57 +03:00

Fixup meson build

The meson build had gotten a little out of hand. It needed to be cleaned
up and have its errors fixed. This should enable lz4 to switch to Meson
at any time should the need ever arise.
This commit is contained in:
Tristan Partin
2022-02-04 02:58:30 -06:00
parent b3a7ca21ce
commit 6c1a39e701
11 changed files with 239 additions and 381 deletions

View File

@@ -620,11 +620,10 @@ jobs:
--buildtype=debug
-Db_lundef=false
-Dauto_features=enabled
-Ddefault_library=both
-Dbin_programs=true
-Dbin_contrib=true
-Dbin_tests=true
-Dbin_examples=true
-Dprograms=true
-Dcontrib=true
-Dtests=true
-Dexamples=true
contrib/meson build
- name: staging

View File

@@ -11,11 +11,17 @@
# 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'],
project(
'lz4',
['c'],
license: 'BSD-2-Clause-Patent AND GPL-2.0-or-later',
default_options: [
'c_std=c99',
'buildtype=release',
'warning_level=3'
],
version: 'DUMMY',
meson_version: '>=0.47.0')
meson_version: '>=0.49.0'
)
subdir('meson')

View File

@@ -1,55 +0,0 @@
#!/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()

View File

@@ -1,5 +1,6 @@
# #############################################################################
# Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
# Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
# Copyright (c) 2022-present Tristan Partin <tristan(at)partin.io>
# All rights reserved.
#
# This source code is licensed under both the BSD-style license (found in the
@@ -7,37 +8,35 @@
# in the COPYING file in the root directory of this source tree).
# #############################################################################
lz4_root_dir = '../../../../..'
lz4_source_root = '../../../../..'
add_languages('cpp')
cxx = meson.get_compiler('cpp')
gen_manual_includes = include_directories(join_paths(lz4_root_dir, 'contrib/gen_manual'))
sources = files(
lz4_source_root / 'contrib/gen_manual/gen_manual.cpp'
)
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,
gen_manual = executable(
'gen_manual',
sources,
native: true,
install: false)
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)
manual_pages = ['lz4', 'lz4frame']
foreach mp : manual_pages
custom_target(
'@0@_manual.html'.format(mp),
build_by_default: true,
input: lz4_source_root / 'lib/@0@.h'.format(mp),
output: '@0@_manual.html'.format(mp),
command: [
gen_manual,
lz4_version,
'@INPUT@',
'@OUTPUT@',
],
install: false
)
endforeach

View File

@@ -1,5 +1,6 @@
# #############################################################################
# Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
# Copyright (c) 2022-present Tristan Partin <tristan(at)partin.io>
# All rights reserved.
#
# This source code is licensed under both the BSD-style license (found in the

View File

@@ -1,5 +1,6 @@
# #############################################################################
# Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
# Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
# Copyright (c) 2022-present Tristan Partin <tristan(at)partin.io>
# All rights reserved.
#
# This source code is licensed under both the BSD-style license (found in the
@@ -7,43 +8,25 @@
# in the COPYING file in the root directory of this source tree).
# #############################################################################
lz4_root_dir = '../../../..'
lz4_source_root = '../../../..'
#examples_c_args = ['-Wextra', '-Wundef', '-Wshadow', '-Wcast-align', '-Wstrict-prototypes']
examples = {
'printVersion': 'printVersion.c',
'doubleBuffer': 'blockStreaming_doubleBuffer.c',
'dictionaryRandomAccess': 'dictionaryRandomAccess.c',
'ringBuffer': 'blockStreaming_ringBuffer.c',
'ringBufferHC': 'HCStreaming_ringBuffer.c',
'lineCompress': 'blockStreaming_lineByLine.c',
'frameCompress': 'frameCompress.c',
'compressFunctions': 'compress_functions.c',
'simpleBuffer': 'simple_buffer.c',
}
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)
foreach e, src : examples
executable(
e,
lz4_source_root / 'examples' / src,
dependencies: liblz4_dep,
install: false
)
endforeach

View File

@@ -1,5 +1,6 @@
# #############################################################################
# Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
# Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
# Copyright (c) 2022-present Tristan Partin <tristan(at)partin.io>
# All rights reserved.
#
# This source code is licensed under both the BSD-style license (found in the
@@ -7,51 +8,69 @@
# in the COPYING file in the root directory of this source tree).
# #############################################################################
lz4_root_dir = '../../../..'
lz4_source_root = '../../../..'
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 = []
sources = files(
lz4_source_root / 'lib/lz4.c',
lz4_source_root / 'lib/lz4frame.c',
lz4_source_root / 'lib/lz4hc.c',
lz4_source_root / 'lib/xxhash.c'
)
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']
c_args = []
if host_machine.system() == 'windows' and default_library != 'static'
c_args += '-DLZ4_DLL_EXPORT=1'
endif
if get_option('unstable')
compile_args += '-DLZ4_STATIC_LINKING_ONLY'
if get_option('default_library') != 'static'
c_args += '-DLZ4_PUBLISH_STATIC_FUNCTIONS'
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'
liblz4 = library(
'lz4',
sources,
install: true,
version: lz4_version,
gnu_symbol_visibility: 'hidden'
)
liblz4_dep = declare_dependency(
link_with: liblz4,
include_directories: include_directories(lz4_source_root / 'lib')
)
if get_option('tests') or get_option('programs')
liblz4_internal = static_library(
'lz4-internal',
objects: liblz4.extract_all_objects(recursive: true),
gnu_symbol_visibility: 'hidden'
)
liblz4_internal_dep = declare_dependency(
link_with: liblz4_internal,
include_directories: include_directories(lz4_source_root / 'lib')
)
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,
pkgconfig.generate(
liblz4,
name: 'lz4',
filebase: 'liblz4',
description: 'extremely fast lossless compression algorithm library',
version: lz4_libversion,
url: 'http://www.lz4.org/')
version: lz4_version,
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'))
install_headers(
lz4_source_root / 'lib/lz4.h',
lz4_source_root / 'lib/lz4hc.h',
lz4_source_root / 'lib/lz4frame.h'
)
if default_library != 'shared'
install_headers(join_paths(lz4_root_dir, 'lib/lz4frame_static.h'))
if get_option('default_library') != 'shared'
install_headers(lz4_source_root / 'lib/lz4frame_static.h')
endif

View File

@@ -1,5 +1,6 @@
# #############################################################################
# Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
# Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
# Copyright (c) 2022-present Tristan Partin <tristan(at)partin.io>
# All rights reserved.
#
# This source code is licensed under both the BSD-style license (found in the
@@ -8,105 +9,59 @@
# #############################################################################
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_source_root = '../../..'
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)
lz4_h_file = lz4_source_root / 'lib/lz4.h'
GetLz4LibraryVersion_py = find_program('GetLz4LibraryVersion.py')
lz4_version = run_command(GetLz4LibraryVersion_py, lz4_h_file, check: true).stdout().strip()
message('Project version is now: @0@'.format(lz4_version))
lz4_libversion = lz4_version
add_project_arguments('-DXXH_NAMESPACE=LZ4_', language: 'c')
# =============================================================================
# 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')
if get_option('debug')
add_project_arguments(cc.get_supported_arguments([
'-Wcast-qual',
'-Wcast-align',
'-Wshadow',
'-Wswitch-enum',
'-Wdeclaration-after-statement',
'-Wstrict-prototypes',
'-Wundef',
'-Wpointer-arith',
'-Wstrict-aliasing=1',
'-DLZ4_DEBUG=@0@'.format(get_option('debug-level')),
]
),
language: 'c',
)
endif
# =============================================================================
# Subdirs
# =============================================================================
if get_option('memory-usage') > 0
add_project_arguments(
'-DLZ4_MEMORY_USAGE=@0@'.format(get_option('memory-usage')),
language: 'c'
)
endif
subdir('lib')
if bin_programs
if get_option('programs')
subdir('programs')
endif
if bin_tests
if get_option('tests')
subdir('tests')
endif
if bin_contrib
if get_option('contrib')
subdir('contrib')
endif
if bin_examples
if get_option('examples')
subdir('examples')
endif

View File

@@ -1,5 +1,6 @@
# #############################################################################
# Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
# Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
# Copyright (c) 2022-present Tristan Partin <tristan(at)partin.io>
# All rights reserved.
#
# This source code is licensed under both the BSD-style license (found in the
@@ -7,46 +8,37 @@
# in the COPYING file in the root directory of this source tree).
# #############################################################################
lz4_root_dir = '../../../..'
lz4_source_root = '../../../..'
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 = []
sources = files(
lz4_source_root / 'programs/bench.c',
lz4_source_root / 'programs/datagen.c',
lz4_source_root / 'programs/lz4cli.c',
lz4_source_root / 'programs/lz4io.c',
)
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
lz4 = executable(
'lz4',
sources,
include_directories: include_directories(lz4_source_root / 'programs'),
dependencies: [liblz4_internal_dep],
export_dynamic: get_option('debug') and host_machine.system() == 'windows',
install: true
)
install_man(lz4_source_root / 'programs/lz4.1')
if meson.version().version_compare('>=0.61.0')
foreach alias : ['lz4c', 'lz4cat', 'unlz4']
install_symlink(
alias,
install_dir: get_option('bindir'),
pointing_to: 'lz4'
)
install_symlink(
'@0@.1'.format(alias),
install_dir: get_option('mandir') / 'man1',
pointing_to: 'lz4.1'
)
endforeach
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

View File

@@ -1,5 +1,6 @@
# #############################################################################
# Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
# Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
# Copyright (c) 2022-present Tristan Partin <tristan(at)partin.io>
# All rights reserved.
#
# This source code is licensed under both the BSD-style license (found in the
@@ -7,87 +8,45 @@
# 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'))
lz4_source_root = '../../../..'
# =============================================================================
# Test flags
# =============================================================================
exes = {
'fullbench': {
'sources': files(lz4_source_root / 'tests/fullbench.c'),
'include_directories': include_directories(lz4_source_root / 'programs'),
},
'fuzzer': {
'sources': files(lz4_source_root / 'tests/fuzzer.c'),
'include_directories': include_directories(lz4_source_root / 'programs'),
},
'frametest': {
'sources': files(lz4_source_root / 'tests/frametest.c'),
'include_directories': include_directories(lz4_source_root / 'programs'),
},
'roundTripTest': {
'sources': files(lz4_source_root / 'tests/roundTripTest.c'),
},
'datagen': {
'sources': files(lz4_source_root / 'tests/datagencli.c'),
'objects': lz4.extract_objects(lz4_source_root / 'programs/datagen.c'),
'include_directories': include_directories(lz4_source_root / 'programs'),
},
'checkFrame': {
'sources': files(lz4_source_root / 'tests/checkFrame.c'),
'include_directories': include_directories(lz4_source_root / 'programs'),
},
'checkTag': {
'sources': files(lz4_source_root / 'tests/checkTag.c'),
},
}
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)
foreach e, attrs : exes
executable(
e,
attrs.get('sources'),
objects: attrs.get('objects', []),
dependencies: [liblz4_internal_dep],
include_directories: attrs.get('include_directories', []),
install: false
)
endforeach

View File

@@ -1,5 +1,6 @@
# #############################################################################
# Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
# Copyright (c) 2022-present Tristan Partin <tristan(at)partin.io>
# All rights reserved.
#
# This source code is licensed under both the BSD-style license (found in the
@@ -7,18 +8,17 @@
# 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,
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,
option('unstable', type: 'boolean', value: false,
description: 'Expose unstable interfaces')
option('programs', type: 'boolean', value: false,
description: 'Enable programs build')
option('bin_tests', type: 'boolean', value: false,
option('tests', type: 'boolean', value: false,
description: 'Enable tests build')
option('bin_contrib', type: 'boolean', value: false,
option('contrib', type: 'boolean', value: false,
description: 'Enable contrib build')
option('bin_examples', type: 'boolean', value: false,
option('examples', type: 'boolean', value: false,
description: 'Enable examples build')
option('memory-usage', type: 'integer', min: 0, value: 0,
description: 'See LZ4_MEMORY_USAGE. 0 means use the LZ4 default')