From: Adam Duskett Date: Mon, 15 Jan 2018 11:25:46 +0000 (-0500) Subject: add false option for tests (#7778) X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=7ef95182343af165023847e42e27c17ff0047062;p=elogind.git add false option for tests (#7778) Currently there is no way to prevent tests from building using meson. This introduces two problems: 1) It adds a extra 381 files to compile. 2) One of these tests explicitly requires libgcrypt to be built even if systemd is not using it. 3) It adds C++ to the requirements to build systemd. When cross-compiling, this is uneccessary. --- diff --git a/meson.build b/meson.build index bdda7561d..abc9fbecf 100644 --- a/meson.build +++ b/meson.build @@ -324,10 +324,12 @@ cc = meson.get_compiler('c') pkgconfig = import('pkgconfig') check_compilation_sh = find_program('tools/meson-check-compilation.sh') -cxx = find_program('c++', required : false) -if cxx.found() - # Used only for tests - add_languages('cpp') +if get_option('tests') != 'false' + cxx = find_program('c++', required : false) + if cxx.found() + # Used only for tests + add_languages('cpp') + endif endif foreach arg : ['-Wextra', @@ -2693,8 +2695,9 @@ foreach tuple : tests timeout = type.split('=')[1].to_int() type = '' endif - - if condition == '' or conf.get(condition) == 1 + if want_tests == 'false' + message('Not compiling @0@ because tests is set to false'.format(name)) + elif condition == '' or conf.get(condition) == 1 exe = executable( name, sources, diff --git a/meson_options.txt b/meson_options.txt index aba8d1c20..49de45c22 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -346,7 +346,7 @@ option('bashcompletiondir', type : 'string', option('zshcompletiondir', type : 'string', description : 'directory for zsh completion scripts ["no" disables]') -option('tests', type : 'combo', choices : ['true', 'unsafe'], +option('tests', type : 'combo', choices : ['true', 'unsafe', 'false'], description : 'enable extra tests with =unsafe') option('slow-tests', type : 'boolean', value : 'false', description : 'run the slow tests by default')