meson: use a feature option for tests instead of boolean
ci/woodpecker/pr/woodpecker Pipeline was successful Details

This allows tests to be autodetected gracefully, which is particularly
convenient for kyua and atf_sh which are fairly painful to build and
install by hand. Those who want to ensure tests are enabled or disabled
may pass `-Dtests=enabled` or `-Dtests=disabled` respectively.

This does require a modest bump in the required meson version to 0.49,
which was released at the end of 2018, so roughly 4 years ago.
pull/244/head
Dylan Baker 2022-08-17 11:05:55 -07:00
parent bddf1641f8
commit fa803c7ecd
2 changed files with 12 additions and 11 deletions

View File

@ -1,7 +1,7 @@
project('pkgconf', 'c', project('pkgconf', 'c',
version : '1.9.3', version : '1.9.3',
license : 'ISC', license : 'ISC',
meson_version : '>=0.47', meson_version : '>=0.49',
default_options : ['c_std=c99'], default_options : ['c_std=c99'],
) )
@ -117,13 +117,12 @@ pkgconf_exe = executable('pkgconf',
c_args: build_static, c_args: build_static,
install : true) install : true)
if get_option('tests') with_tests = get_option('tests')
kyua_exe = find_program('kyua') kyua_exe = find_program('kyua', required : with_tests, disabler : true)
atf_sh_exe = find_program('atf-sh') atf_sh_exe = find_program('atf-sh', required : with_tests, disabler : true)
kyuafile = configure_file(input : 'Kyuafile.in', output : 'Kyuafile', configuration : cdata) kyuafile = configure_file(input : 'Kyuafile.in', output : 'Kyuafile', configuration : cdata)
test('kyua', kyua_exe, args : ['--config=none', 'test', '--kyuafile', kyuafile, '--build-root', meson.current_build_dir()]) test('kyua', kyua_exe, args : ['--config=none', 'test', '--kyuafile', kyuafile, '--build-root', meson.current_build_dir()])
subdir('tests') subdir('tests')
endif
install_man('man/pkgconf.1') install_man('man/pkgconf.1')
install_man('man/pkg.m4.7') install_man('man/pkg.m4.7')

View File

@ -1,3 +1,5 @@
option('tests', type: 'boolean', value: true, option(
description: 'Build tests which depends upon the kyua framework' 'tests',
type: 'feature',
description: 'Build tests which depends upon the kyua framework',
) )