From 57bed86429db9d871f1442c94f14e94e38972ca3 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Thu, 16 May 2019 21:15:15 -0400 Subject: [PATCH] meson: add options for tests installation dirs --- meson_options.txt | 6 ++++++ tests/meson.build | 23 ++++++++++++++++------- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/meson_options.txt b/meson_options.txt index b9a2fb5..4b8629f 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -23,3 +23,9 @@ option('tests', type: 'boolean', option('installed_tests', type: 'boolean', value: true, description: 'Install tests') +option('installed_test_datadir', type: 'string', + value: '', + description: 'Installation directory for data files in tests') +option('installed_test_bindir', type: 'string', + value: '', + description: 'Installation directory for binary files in tests') diff --git a/tests/meson.build b/tests/meson.build index 77281f5..7522456 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -21,8 +21,17 @@ unit_tests = [ gen_installed_test = find_program('gen-installed-test.py') -installed_test_datadir = join_paths(get_option('prefix'), get_option('datadir'), 'installed-tests', graphene_api_path) -installed_test_bindir = join_paths(get_option('prefix'), get_option('libexecdir'), 'installed-tests', graphene_api_path) +test_suffix = join_paths('installed-tests', graphene_api_path) + +test_datadir = join_paths(get_option('installed_test_datadir'), test_suffix) +if test_datadir == '' + test_datadir = join_paths(get_option('prefix'), get_option('datadir'), test_suffix) +endif + +test_bindir = join_paths(get_option('installed_test_bindir'), test_suffix) +if test_bindir == '' + test_bindir = join_paths(get_option('prefix'), get_option('libexecdir'), test_suffix) +endif # Make tests conditional on having mutest-1 installed system-wide, or # available as a subproject @@ -40,13 +49,13 @@ if mutest_dep.found() output: wrapper, command: [ gen_installed_test, - '--testdir=@0@'.format(installed_test_bindir), + '--testdir=@0@'.format(test_bindir), '--testname=@0@'.format(unit), '--outdir=@OUTDIR@', '--outfile=@0@'.format(wrapper), ], install: get_option('installed_tests'), - install_dir: installed_test_datadir, + install_dir: test_datadir, ) test(unit, @@ -55,7 +64,7 @@ if mutest_dep.found() include_directories: graphene_inc, c_args: common_cflags, install: get_option('installed_tests'), - install_dir: installed_test_bindir, + install_dir: test_bindir, ), env: ['MUTEST_OUTPUT=tap'], protocol: 'tap', @@ -66,17 +75,18 @@ endif if build_gir and host_system == 'linux' and not meson.is_cross_build() foreach unit: ['introspection.py'] wrapper = '@0@.test'.format(unit) + install_data(unit, install_dir: test_bindir) custom_target(wrapper, output: wrapper, command: [ gen_installed_test, - '--testdir=@0@'.format(installed_test_bindir), + '--testdir=@0@'.format(test_bindir), '--testname=@0@'.format(unit), '--outdir=@OUTDIR@', '--outfile=@0@'.format(wrapper), ], install: get_option('installed_tests'), - install_dir: installed_test_datadir, + install_dir: test_datadir, ) test(unit, -- 2.31.1