From 6bc55ec35d02931960ec1f5768fc9c56ab62ef66 Mon Sep 17 00:00:00 2001 From: David Seifert <16636962+SoapGentoo@users.noreply.github.com> Date: Tue, 7 Jan 2020 02:23:50 +0100 Subject: [PATCH] Meson updates (#1124) * Modernize meson.build * Make tests optional * Use `files()` for quick sanity checks * Bump version to 1.9.3 * Bump SOVERSION, as some functions were removed and structs were changed, as determined by libabigail. --- CMakeLists.txt | 2 +- include/json/version.h | 4 ++-- meson.build | 33 ++++++++++++++++++--------------- meson_options.txt | 5 +++++ 4 files changed, 26 insertions(+), 18 deletions(-) create mode 100644 meson_options.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 4e06331..c05ddcc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,7 +70,7 @@ project(JSONCPP # 2. /include/json/version.h # 3. /CMakeLists.txt # IMPORTANT: also update the SOVERSION!! - VERSION 1.9.2 # [.[.[.]]] + VERSION 1.9.3 # [.[.[.]]] LANGUAGES CXX) message(STATUS "JsonCpp Version: ${JSONCPP_VERSION_MAJOR}.${JSONCPP_VERSION_MINOR}.${JSONCPP_VERSION_PATCH}") diff --git a/include/json/version.h b/include/json/version.h index ff94372..0f29834 100644 --- a/include/json/version.h +++ b/include/json/version.h @@ -9,10 +9,10 @@ // 3. /CMakeLists.txt // IMPORTANT: also update the SOVERSION!! -#define JSONCPP_VERSION_STRING "1.9.2" +#define JSONCPP_VERSION_STRING "1.9.3" #define JSONCPP_VERSION_MAJOR 1 #define JSONCPP_VERSION_MINOR 9 -#define JSONCPP_VERSION_PATCH 2 +#define JSONCPP_VERSION_PATCH 3 #define JSONCPP_VERSION_QUALIFIER #define JSONCPP_VERSION_HEXA \ ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | \ diff --git a/meson.build b/meson.build index 1bc94a8..c293203 100644 --- a/meson.build +++ b/meson.build @@ -9,7 +9,7 @@ project( # 2. /include/json/version.h # 3. /CMakeLists.txt # IMPORTANT: also update the SOVERSION!! - version : '1.9.2', + version : '1.9.3', default_options : [ 'buildtype=release', 'cpp_std=c++11', @@ -18,7 +18,7 @@ project( meson_version : '>= 0.49.0') -jsoncpp_headers = [ +jsoncpp_headers = files([ 'include/json/allocator.h', 'include/json/assertions.h', 'include/json/config.h', @@ -28,7 +28,8 @@ jsoncpp_headers = [ 'include/json/reader.h', 'include/json/value.h', 'include/json/version.h', - 'include/json/writer.h'] + 'include/json/writer.h', +]) jsoncpp_include_directories = include_directories('include') install_headers( @@ -44,13 +45,12 @@ else endif jsoncpp_lib = library( - 'jsoncpp', - [ jsoncpp_headers, - 'src/lib_json/json_tool.h', + 'jsoncpp', files([ 'src/lib_json/json_reader.cpp', 'src/lib_json/json_value.cpp', - 'src/lib_json/json_writer.cpp'], - soversion : 22, + 'src/lib_json/json_writer.cpp', + ]), + soversion : 23, install : true, include_directories : jsoncpp_include_directories, cpp_args: dll_export_flag) @@ -66,18 +66,21 @@ import('pkgconfig').generate( jsoncpp_dep = declare_dependency( include_directories : jsoncpp_include_directories, link_with : jsoncpp_lib, - version : meson.project_version(), - ) + version : meson.project_version()) # tests -python = import('python').find_installation() +if meson.is_subproject() or not get_option('tests') + subdir_done() +endif + +python = import('python').find_installation('python3') jsoncpp_test = executable( - 'jsoncpp_test', - [ 'src/test_lib_json/jsontest.cpp', - 'src/test_lib_json/jsontest.h', + 'jsoncpp_test', files([ + 'src/test_lib_json/jsontest.cpp', 'src/test_lib_json/main.cpp', - 'src/test_lib_json/fuzz.cpp'], + 'src/test_lib_json/fuzz.cpp', + ]), include_directories : jsoncpp_include_directories, link_with : jsoncpp_lib, install : false, diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000..9c215ae --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,5 @@ +option( + 'tests', + type : 'boolean', + value : true, + description : 'Enable building tests')