diff --git a/doc/meson.build b/doc/meson.build index 13d0cbfd..a7595439 100644 --- a/doc/meson.build +++ b/doc/meson.build @@ -5,11 +5,11 @@ cmd_sphinx = find_program('sphinx-build-3', 'sphinx-build3', 'sphinx-build') doc_config = configuration_data() doc_config.set('PACKAGE_NAME', meson.project_name()) doc_config.set('PACKAGE_VERSION', meson.project_version()) -doc_config.set('top_srcdir', meson.source_root()) +doc_config.set('top_srcdir', project_source_root) # Sphinx really really wants a _static directory in its source tree. Let's # make it happy -run_command('mkdir', '-p', join_paths(meson.build_root(), 'doc', '_static')) +run_command('mkdir', '-p', join_paths(project_build_root, 'doc', '_static')) # Effectively a noop copy. We *must* generate enums.rst so that will end up # in the build directory. sphinx doesn't allow for multiple source @@ -34,8 +34,8 @@ custom_target('sphinx', input : [ sphinx_conf, dst_rsts ], output : 'html', command : [ cmd_sphinx, '-b', 'html', '-q', '-n', - join_paths(meson.build_root(), 'doc'), - join_paths(meson.build_root(), 'doc', 'html') ], + join_paths(project_build_root, 'doc'), + join_paths(project_build_root, 'doc', 'html') ], build_by_default : true, install : false) diff --git a/meson.build b/meson.build index cf2209f0..50fe7832 100644 --- a/meson.build +++ b/meson.build @@ -4,6 +4,16 @@ project('libratbag', 'c', default_options : [ 'c_std=gnu99', 'warning_level=2' ], meson_version : '>= 0.50.0') +# TODO: remove this once we bump meson version. +if meson.version().version_compare('>=0.56') + project_build_root = meson.project_build_root() + project_source_root = meson.project_source_root() +else + project_build_root = meson.build_root() + project_source_root = meson.source_root() + message('Embedding libratbag source will not work because an older version of meson is used') +endif + # The DBus API version. Increase this every time the DBus API changes. # No backwards/forwards guarantee, clients are expected to understand # whatever ratbagd speaks or bail out. This should be removed if we ever @@ -45,7 +55,7 @@ config_h.set('RATBAGD_API_VERSION', ratbagd_api_version) libratbag_data_dir = join_paths(get_option('prefix'), get_option('datadir'), 'libratbag') -libratbag_data_dir_devel = join_paths(meson.source_root(), 'data', 'devices') +libratbag_data_dir_devel = join_paths(project_source_root, 'data', 'devices') config_h.set_quoted('LIBRATBAG_DATA_DIR', libratbag_data_dir) # Coverity breaks because it doesn't define _Float128 correctly, you'll end @@ -302,13 +312,13 @@ install_subdir('data/devices', exclude_files : ['device.example', 'README.md'], install_dir : join_paths(get_option('datadir'), 'libratbag')) -data_parse_test = find_program(join_paths(meson.source_root(), 'test/data-parse-test.py')) +data_parse_test = find_program(join_paths(project_source_root, 'test/data-parse-test.py')) test('data-parse-test', data_parse_test, args: libratbag_data_dir_devel) -duplicate_test = find_program(join_paths(meson.source_root(), 'test/duplicate-check.py')) +duplicate_test = find_program(join_paths(project_source_root, 'test/duplicate-check.py')) test('duplicate-test', duplicate_test, args : libratbag_data_dir_devel) -receiver_id_test = find_program(join_paths(meson.source_root(), 'test/receiver-check.py')) +receiver_id_test = find_program(join_paths(project_source_root, 'test/receiver-check.py')) test('receiver-id-test', receiver_id_test, args : libratbag_data_dir_devel) #### tests #### @@ -347,7 +357,7 @@ if enable_tests valgrind = find_program('valgrind', required : false) if valgrind.found() - valgrind_suppressions_file = join_paths(meson.source_root(), 'test', 'valgrind.suppressions') + valgrind_suppressions_file = join_paths(project_source_root, 'test', 'valgrind.suppressions') add_test_setup('valgrind', exe_wrapper : [ valgrind, @@ -421,7 +431,7 @@ executable('ratbagd.devel', include_directories : include_directories('src'), install : false, c_args : ['-DRATBAG_DBUS_INTERFACE="ratbag_devel1"', - '-DDBUS_POLICY_SRC="@0@/@1@"'.format(meson.build_root(), dbus_devel_policy), + '-DDBUS_POLICY_SRC="@0@/@1@"'.format(project_build_root, dbus_devel_policy), '-DDBUS_POLICY_DST="@0@/@1@"'.format(dbussystemdir, dbus_devel_policy), '-DDISABLE_COREDUMP=1'], ) @@ -523,7 +533,7 @@ custom_target('ratbagctl', output : 'ratbagctl', input : [ratbagctl_body, 'tools/ratbagd.py'], build_by_default : true, - command : [py3, join_paths(meson.source_root(), 'tools', 'merge_ratbagd.py'), + command : [py3, join_paths(project_source_root, 'tools', 'merge_ratbagd.py'), '@INPUT@', '--output', '@OUTPUT@'], install: true, @@ -538,7 +548,7 @@ man_ratbagctl = configure_file ( ) config_ratbagctl_devel = configuration_data() -config_ratbagctl_devel.set('MESON_BUILD_ROOT', meson.build_root()) +config_ratbagctl_devel.set('MESON_BUILD_ROOT', project_build_root) config_ratbagctl_devel.set('LIBRATBAG_DATA_DIR', libratbag_data_dir_devel) config_ratbagctl_devel.set('RATBAGD_API_VERSION', ratbagd_api_version) @@ -557,8 +567,8 @@ configure_file(input : 'tools/ratbagctl.test.py.in', env_test = environment() env_test.set('LIBRATBAG_DATA_DIR', libratbag_data_dir_devel) # See: https://github.com/mesonbuild/meson/issues/3306. -env_test.set('MESON_SOURCE_ROOT', meson.source_root()) -ratbagctl_test = find_program(join_paths(meson.build_root(), 'ratbagctl.test')) +env_test.set('MESON_SOURCE_ROOT', project_source_root) +ratbagctl_test = find_program(join_paths(project_build_root, 'ratbagctl.test')) test('ratbagctl-test', ratbagctl_test, args: ['-v'], env : env_test) # ratbag-command uses Swig bindings to call libratbag directly @@ -568,8 +578,8 @@ swig_gen = generator( output: ['@BASENAME@.c'], arguments: ['-python', '-py3', '-o', './@OUTPUT@', '-outdir', '.', - '-I' + join_paths(meson.source_root(), 'src'), - '-I' + join_paths(meson.source_root(), 'tools'), + '-I' + join_paths(project_source_root, 'src'), + '-I' + join_paths(project_source_root, 'tools'), '@INPUT@'], ) @@ -579,7 +589,7 @@ wrapper_deps = [ dep_libshared, ] -i_source = join_paths(meson.source_root(), 'src', 'libratbag.i') +i_source = join_paths(project_source_root, 'src', 'libratbag.i') c_source = swig_gen.process(i_source) shared_library( 'libratbag', @@ -594,7 +604,7 @@ shared_library( install: false, ) -i_source = join_paths(meson.source_root(), 'src', 'hidpp.i') +i_source = join_paths(project_source_root, 'src', 'hidpp.i') c_source = swig_gen.process(i_source) shared_library( 'hidpp', @@ -624,7 +634,7 @@ custom_target('ratbag-command', output : 'ratbag-command', input : [ratbagctl_body, ratbagc_py], build_by_default : true, - command : [py3, join_paths(meson.source_root(), 'tools', 'merge_ratbagd.py'), + command : [py3, join_paths(project_source_root, 'tools', 'merge_ratbagd.py'), '@INPUT@', '--output', '@OUTPUT@'], install: false) @@ -638,7 +648,7 @@ run_target( command : 'tools/python-black.sh', ) -python_black_check = find_program(join_paths(meson.source_root(), 'test/python-black-check.sh')) +python_black_check = find_program(join_paths(project_source_root, 'test/python-black-check.sh')) run_target( 'python-black-check', command : python_black_check, @@ -655,7 +665,7 @@ run_target( command : 'tools/python-ruff.sh', ) -python_ruff_check = find_program(join_paths(meson.source_root(), 'test/python-ruff-check.sh')) +python_ruff_check = find_program(join_paths(project_source_root, 'test/python-ruff-check.sh')) run_target( 'python-ruff-check', command : python_ruff_check,