[igt-dev] [PATCH i-g-t 1/2] amdgpu/meson: Set the correct rpath

Arkadiusz Hiler arkadiusz.hiler at intel.com
Mon Jul 9 14:27:11 UTC 2018


AMDGPU tests were reusing rpath set in tests/meson.build, which does not
account for the extra level of nesting, so let's define a new one.

Cc: Harry Wentland <harry.wentland at amd.com>
Cc: Daniel Vetter <daniel at ffwll.ch>
Cc: Petri Latvala <petri.latvala at intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler at intel.com>
---
 tests/amdgpu/meson.build | 28 ++++++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/tests/amdgpu/meson.build b/tests/amdgpu/meson.build
index af5e74c7..434e4339 100644
--- a/tests/amdgpu/meson.build
+++ b/tests/amdgpu/meson.build
@@ -9,11 +9,35 @@ 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 : join_paths(libexecdir, 'amdgpu'),
-				       install_rpath : rpathdir,
+				       install_dir : amdgpudir,
+				       install_rpath :  amdgpu_rpathdir,
 				       install : true)
 	test_progs += join_paths('amdgpu', prog)
 endforeach
-- 
2.14.4



More information about the igt-dev mailing list