blob: 8a44c5b032aca2f8297c3d1bc2fd3f06bc0f8063 [file] [log] [blame]
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.
[Retrieved from:
https://github.com/open-source-parsers/jsoncpp/commit/6bc55ec35d02931960ec1f5768fc9c56ab62ef66]
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
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 4e063317..c05ddccb 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 # <major>[.<minor>[.<patch>[.<tweak>]]]
+ VERSION 1.9.3 # <major>[.<minor>[.<patch>[.<tweak>]]]
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 ff94372b..0f298341 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 1bc94a8a..c2932030 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 00000000..9c215ae6
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,5 @@
+option(
+ 'tests',
+ type : 'boolean',
+ value : true,
+ description : 'Enable building tests')