From 5a2daafc39e061bad39b6a67820e293483c25e89 Mon Sep 17 00:00:00 2001 From: David Seifert Date: Sat, 21 Dec 2019 19:42:01 +0100 Subject: [PATCH] Modernize meson.build * Make tests optional * Use `files()` for quick sanity checks --- meson.build | 29 ++++++++++++++++------------- meson_options.txt | 5 +++++ 2 files changed, 21 insertions(+), 13 deletions(-) create mode 100644 meson_options.txt diff --git a/meson.build b/meson.build index 1bc94a8..6612c7a 100644 --- a/meson.build +++ b/meson.build @@ -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,12 +45,11 @@ 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'], + 'src/lib_json/json_writer.cpp', + ]), soversion : 22, install : true, include_directories : jsoncpp_include_directories, @@ -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')