From 74f749aff360b433a24164c22ce046eb8a3c79aa Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Mon, 13 Nov 2023 17:24:49 -0500 Subject: [PATCH] fix: override default install directories for `rpath` consistency (#8) --- install.rb | 8 ++++---- meson.build | 9 ++++++--- src/algorithms/clas12/fiducial_cuts/meson.build | 3 ++- src/iguana/meson.build | 3 ++- src/services/meson.build | 3 ++- src/tests/meson.build | 5 +++-- 6 files changed, 19 insertions(+), 12 deletions(-) diff --git a/install.rb b/install.rb index 6d8876b6..70fd2d17 100755 --- a/install.rb +++ b/install.rb @@ -57,7 +57,7 @@ def rmDir(dir,obj='files') prefix = File.realpath options[:install] # print and run a command -def exe(cmd) +def runCommand(cmd) puts "[+++] #{cmd}" system cmd or raise "FAILED: #{cmd}" end @@ -90,8 +90,8 @@ def buildOpt(key,val) # run meson if Dir.exists?(options[:build]) - exe "#{meson[:config]} || #{meson[:setup]}" + runCommand "#{meson[:config]} || #{meson[:setup]}" else - exe meson[:setup] + runCommand meson[:setup] end -exe meson[:install] +runCommand meson[:install] diff --git a/meson.build b/meson.build index 4b05426b..8134c3b7 100644 --- a/meson.build +++ b/meson.build @@ -7,11 +7,14 @@ project( project_inc = include_directories('src') -project_exe_rpath = ':'.join([ - '$ORIGIN/../lib', +project_lib_install_dir = 'lib' # to keep it the same for different Linux distributions +project_bin_install_dir = 'bin' + +project_lib_rpath = '$ORIGIN' +project_bin_rpath = ':'.join([ + '$ORIGIN/../' + project_lib_install_dir, get_option('hipo') + '/lib' ]) -project_lib_rpath = '$ORIGIN' fmt_dep = dependency('fmt') hipo_dep = dependency('hipo4', method: 'cmake', cmake_args: '-DCMAKE_PREFIX_PATH=' + get_option('hipo')) diff --git a/src/algorithms/clas12/fiducial_cuts/meson.build b/src/algorithms/clas12/fiducial_cuts/meson.build index fab3e5cc..cc2767fe 100644 --- a/src/algorithms/clas12/fiducial_cuts/meson.build +++ b/src/algorithms/clas12/fiducial_cuts/meson.build @@ -12,8 +12,9 @@ algo_lib = shared_library( include_directories: project_inc, dependencies: services_dep, link_with: services_lib, - install_rpath: project_lib_rpath, install: true, + install_dir: project_lib_install_dir, + install_rpath: project_lib_rpath, ) install_headers(algo_headers, subdir : meson.project_name()) diff --git a/src/iguana/meson.build b/src/iguana/meson.build index 2b3d5858..97ff1648 100644 --- a/src/iguana/meson.build +++ b/src/iguana/meson.build @@ -11,8 +11,9 @@ iguana_lib = shared_library( iguana_sources, include_directories: project_inc, link_with: [ algo_lib, services_lib ], - install_rpath: project_lib_rpath, install: true, + install_dir: project_lib_install_dir, + install_rpath: project_lib_rpath, ) install_headers(iguana_headers, subdir : meson.project_name()) diff --git a/src/services/meson.build b/src/services/meson.build index 955170c5..c60ef1b4 100644 --- a/src/services/meson.build +++ b/src/services/meson.build @@ -13,8 +13,9 @@ services_lib = shared_library( services_sources, include_directories: project_inc, dependencies: fmt_dep, - install_rpath: project_lib_rpath, install: true, + install_dir: project_lib_install_dir, + install_rpath: project_lib_rpath, ) services_dep = declare_dependency( diff --git a/src/tests/meson.build b/src/tests/meson.build index c44d020e..05c6754a 100644 --- a/src/tests/meson.build +++ b/src/tests/meson.build @@ -1,9 +1,10 @@ -test_exe = executable( +test_bin = executable( 'run', 'main.cc', include_directories: project_inc, dependencies: [ fmt_dep, hipo_dep ], link_with: iguana_lib, - install_rpath: project_exe_rpath, install: true, + install_dir: project_bin_install_dir, + install_rpath: project_bin_rpath, )