From: Rosen Penev Date: Thu, 5 Feb 2026 21:30:45 +0000 (-0800) Subject: meson: use static library for tests X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=92a4911e881200fce21a0f771699a91fd45c02eb;p=thirdparty%2Fjson-c.git meson: use static library for tests Needed as tests use private APIs that are not exported. Signed-off-by: Rosen Penev --- diff --git a/meson.build b/meson.build index ece6167..39e9956 100644 --- a/meson.build +++ b/meson.build @@ -225,6 +225,12 @@ endif add_project_arguments(cc.get_supported_arguments('-Wno-unused-parameter'), language : 'c') +sym = cc.get_supported_link_arguments( + '-Wl,--version-script,@0@/json-c.sym'.format( + meson.current_source_dir(), + ), +) + # Source files sources = files( 'arraylist.c', 'debug.c', 'json_c_version.c', 'json_object.c', @@ -249,6 +255,7 @@ libjson = library('json-c', include_directories: inc, dependencies: bsd_dep, install: true, + link_args: sym, version: '5.4.0', soversion: '5', ) diff --git a/tests/meson.build b/tests/meson.build index 9580e4b..50c3b03 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -1,5 +1,16 @@ -test_includes = include_directories('.') -test_deps = [jsonc_dep] +#This hack is needed for Windows tests +test_lib = static_library( + 'jsonctest', + objects: libjson.extract_all_objects( + recursive: false, + ), + install: false, +) + +test_deps = declare_dependency( + include_directories: '..', + link_with: test_lib, +) # List of test sources and expected output files test_cases = [ @@ -53,7 +64,6 @@ foreach t : test_cases name = t[0] expected = t[1] exe = executable(name, name + '.c', - include_directories: test_includes, dependencies: test_deps ) @@ -62,4 +72,4 @@ foreach t : test_cases env: ['EXPECTED_FILE=' + meson.current_build_dir() / expected], workdir: testdir ) -endforeach \ No newline at end of file +endforeach