[igt-dev] [PATCH i-g-t 1/2] meson: Define all the rpath_dirs in one place
Arkadiusz Hiler
arkadiusz.hiler at intel.com
Mon Aug 13 10:26:12 UTC 2018
So they are located close to the definitions of the corresponding
install_dirs and can be reused easily.
Cc: Petri Latvala <petri.latvala at intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler at intel.com>
---
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()
--
2.17.1
More information about the igt-dev
mailing list