From 6cc5ebf11ff6327720f41bbd0a0bd117d6b9edbf Mon Sep 17 00:00:00 2001 From: Arkadiusz Hiler Date: Mon, 13 Aug 2018 13:16:22 +0300 Subject: meson: Define all the rpath_dirs in one place So they are located close to the definitions of the corresponding install_dirs and can be reused easily. Cc: Petri Latvala Signed-off-by: Arkadiusz Hiler Reviewed-by: Petri Latvala --- meson.build | 38 ++++++++++++++++++++++++++++++++++++++ tests/amdgpu/meson.build | 26 +------------------------- tests/meson.build | 22 ---------------------- tools/meson.build | 32 +++++--------------------------- 4 files changed, 44 insertions(+), 74 deletions(-) diff --git a/meson.build b/meson.build index d45db9ac..7278c438 100644 --- a/meson.build +++ b/meson.build @@ -221,9 +221,47 @@ datadir = join_paths(get_option('datadir'), 'igt-gpu-tools') includedir = get_option('includedir') libdir = get_option('libdir') libexecdir = join_paths(get_option('libexecdir'), 'igt-gpu-tools') +amdgpudir = join_paths(libexecdir, 'amdgpu') mandir = get_option('mandir') pkgconfigdir = join_paths(libdir, 'pkgconfig') +if get_option('use_rpath') + # Set up runpath for the test executables towards libigt.so. + # The path should be relative to $ORIGIN so the library is + # still found properly even if installed to a path other than + # prefix. + + # libdir and bindir are pathnames relative to prefix. meson + # enforces this. + + # 1. Start from the executable. + # 2. Executables are installed in certain dir. Add a .. for each + # directory name in it. + # 3. Add relative path to libdir. + + bindir_rpathdir = '$ORIGIN' + foreach p : bindir.split('/') + bindir_rpathdir = join_paths(bindir_rpathdir, '..') + endforeach + bindir_rpathdir = join_paths(bindir_rpathdir, libdir) + + libexecdir_rpathdir = '$ORIGIN' + foreach p : libexecdir.split('/') + libexecdir_rpathdir = join_paths(libexecdir_rpathdir, '..') + endforeach + libexecdir_rpathdir = join_paths(libexecdir_rpathdir, libdir) + + amdgpudir_rpathdir = '$ORIGIN' + foreach p : amdgpudir.split('/') + amdgpudir_rpathdir = join_paths(amdgpudir_rpathdir, '..') + endforeach + amdgpudir_rpathdir = join_paths(amdgpudir_rpathdir, libdir) +else + bindir_rpathdir = '' + libexecdir_rpathdir = '' + amdgpudir_rpathdir = '' +endif + subdir('lib') if _build_tests subdir('tests') diff --git a/tests/amdgpu/meson.build b/tests/amdgpu/meson.build index 15cfb2b5..566e851b 100644 --- a/tests/amdgpu/meson.build +++ b/tests/amdgpu/meson.build @@ -9,35 +9,11 @@ if libdrm_amdgpu.found() amdgpu_deps += libdrm_amdgpu endif -amdgpudir = join_paths(libexecdir, 'amdgpu') - -if get_option('use_rpath') - # Set up runpath for the test executables towards libigt.so. - # The path should be relative to $ORIGIN so the library is - # still found properly even if installed to a path other than - # prefix. - - # libdir and libexecdir are pathnames relative to - # prefix. meson enforces this. - - # Start from the executable - amdgpu_rpathdir = '$ORIGIN' - # Executables are installed in amdgpudir. Add a .. for each - # directory name in it. - foreach p : amdgpudir.split('/') - amdgpu_rpathdir = join_paths(amdgpu_rpathdir, '..') - endforeach - # Add relative path to libdir - amdgpu_rpathdir = join_paths(amdgpu_rpathdir, libdir) -else - amdgpu_rpathdir = '' -endif - foreach prog : amdgpu_progs test_executables += executable(prog, prog + '.c', dependencies : amdgpu_deps, install_dir : amdgpudir, - install_rpath : amdgpu_rpathdir, + install_rpath : amdgpudir_rpathdir, install : true) test_progs += join_paths('amdgpu', prog) endforeach diff --git a/tests/meson.build b/tests/meson.build index bb6c7627..17deb945 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -239,28 +239,6 @@ if _build_audio and alsa.found() and gsl.found() test_deps += alsa endif -if get_option('use_rpath') - # Set up runpath for the test executables towards libigt.so. - # The path should be relative to $ORIGIN so the library is - # still found properly even if installed to a path other than - # prefix. - - # libdir and libexecdir are pathnames relative to - # prefix. meson enforces this. - - # Start from the executable - libexecdir_rpathdir = '$ORIGIN' - # Executables are installed in libexecdir. Add a .. for each - # directory name in it. - foreach p : libexecdir.split('/') - libexecdir_rpathdir = join_paths(libexecdir_rpathdir, '..') - endforeach - # Add relative path to libdir - libexecdir_rpathdir = join_paths(libexecdir_rpathdir, libdir) -else - libexecdir_rpathdir = '' -endif - test_executables = [] foreach prog : test_progs diff --git a/tools/meson.build b/tools/meson.build index ae9ba493..e4517d66 100644 --- a/tools/meson.build +++ b/tools/meson.build @@ -49,32 +49,10 @@ if libdrm_intel.found() tool_deps += zlib endif -if get_option('use_rpath') - # Set up runpath for the test executables towards libigt.so. - # The path should be relative to $ORIGIN so the library is - # still found properly even if installed to a path other than - # prefix. - - # libdir and bindir are pathnames relative to prefix. meson - # enforces this. - - # Start from the executable - tools_rpathdir = '$ORIGIN' - # Executables are installed in bindir. Add a .. for each - # directory name in it. - foreach p : bindir.split('/') - tools_rpathdir = join_paths(tools_rpathdir, '..') - endforeach - # Add relative path to libdir - tools_rpathdir = join_paths(tools_rpathdir, libdir) -else - tools_rpathdir = '' -endif - foreach prog : tools_progs executable(prog, prog + '.c', dependencies : tool_deps, - install_rpath : tools_rpathdir, + install_rpath : bindir_rpathdir, install : true) endforeach @@ -85,21 +63,21 @@ if libudev.found() ] executable('intel_dp_compliance', sources : intel_dp_compliance_src, dependencies : [tool_deps, libudev], - install_rpath : tools_rpathdir, + install_rpath : bindir_rpathdir, install : true) endif intel_l3_parity_src = [ 'intel_l3_parity.c', 'intel_l3_udev_listener.c' ] executable('intel_l3_parity', sources : intel_l3_parity_src, dependencies : tool_deps, - install_rpath : tools_rpathdir, + install_rpath : bindir_rpathdir, install : true) intel_reg_src = [ 'intel_reg.c', 'intel_reg_decode.c', 'intel_reg_spec.c' ] executable('intel_reg', sources : intel_reg_src, dependencies : tool_deps, install : true, - install_rpath : tools_rpathdir, + install_rpath : bindir_rpathdir, c_args : [ '-DIGT_DATADIR="@0@"'.format(join_paths(prefix, datadir)), ]) @@ -118,7 +96,7 @@ shared_library('intel_aubdump', 'aubdump.c', executable('intel_gpu_top', 'intel_gpu_top.c', install : true, - install_rpath : tools_rpathdir, + install_rpath : bindir_rpathdir, dependencies : tool_deps + [ lib_igt_perf ]) conf_data = configuration_data() -- cgit v1.2.3