From: Eli Schwartz Date: Tue, 10 Aug 2021 02:53:15 +0000 (-0400) Subject: meson: avoid rebuilding some libzstd sources in the programs X-Git-Tag: v1.5.4^2~216^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8d522b8a9da21edc7b3b85faa4daeb495ff56a85;p=thirdparty%2Fzstd.git meson: avoid rebuilding some libzstd sources in the programs These need to be explicitly included as we use their private symbols, but we don't need to recompile them when we can reuse the existing objects. Minus 7 compile steps. --- diff --git a/build/meson/programs/meson.build b/build/meson/programs/meson.build index 0704155d8..55ebf166c 100644 --- a/build/meson/programs/meson.build +++ b/build/meson/programs/meson.build @@ -19,12 +19,7 @@ zstd_programs_sources = [join_paths(zstd_rootdir, 'programs/zstdcli.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'), - # needed due to use of private symbol + -fvisibility=hidden - join_paths(zstd_rootdir, 'lib/common/xxhash.c'), - join_paths(zstd_rootdir, 'lib/common/pool.c'), - join_paths(zstd_rootdir, 'lib/common/zstd_common.c'), - join_paths(zstd_rootdir, 'lib/common/error_private.c')] + join_paths(zstd_rootdir, 'programs/zstdcli_trace.c')] zstd_deps = [ libzstd_dep ] zstd_c_args = libzstd_debug_cflags @@ -75,6 +70,12 @@ zstd = executable('zstd', zstd_programs_sources, c_args: zstd_c_args, dependencies: zstd_deps, + # needed due to use of private symbol + -fvisibility=hidden + objects: libzstd.extract_objects( + join_paths(zstd_rootdir, 'lib/common/xxhash.c'), + join_paths(zstd_rootdir, 'lib/common/pool.c'), + join_paths(zstd_rootdir, 'lib/common/zstd_common.c'), + join_paths(zstd_rootdir, 'lib/common/error_private.c')), export_dynamic: export_dynamic_on_windows, # Since Meson 0.45.0 install: true) @@ -82,16 +83,18 @@ 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'), - join_paths(zstd_rootdir, 'lib/common/pool.c'), - join_paths(zstd_rootdir, 'lib/common/zstd_common.c'), - join_paths(zstd_rootdir, 'lib/common/error_private.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, + # needed due to use of private symbol + -fvisibility=hidden + objects: libzstd.extract_objects( + join_paths(zstd_rootdir, 'lib/common/pool.c'), + join_paths(zstd_rootdir, 'lib/common/zstd_common.c'), + join_paths(zstd_rootdir, 'lib/common/error_private.c')), c_args: zstd_frugal_c_args, install: true)