ROOT: set LD_LIBRARY_PATH when ~rpath (#16899)

Allow Spack to build with ROOT as an external dependency by setting
LD_LIBRARY_PATH: given that the external package was not built by
Spack, dependents would not be able to locate libraries using RPATHs
when running ROOT binaries.
This commit is contained in:
vvolkl 2020-06-16 08:31:41 +02:00 committed by GitHub
parent 9f73e60ba9
commit e28561241b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -492,12 +492,16 @@ def setup_dependent_build_environment(self, env, dependent_spec):
env.prepend_path('PATH', self.prefix.bin) env.prepend_path('PATH', self.prefix.bin)
env.append_path('CMAKE_MODULE_PATH', '{0}/cmake' env.append_path('CMAKE_MODULE_PATH', '{0}/cmake'
.format(self.prefix)) .format(self.prefix))
if "+rpath" not in self.spec:
env.prepend_path('LD_LIBRARY_PATH', self.prefix.lib)
def setup_dependent_run_environment(self, env, dependent_spec): def setup_dependent_run_environment(self, env, dependent_spec):
env.set('ROOTSYS', self.prefix) env.set('ROOTSYS', self.prefix)
env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1))) env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1)))
env.prepend_path('PYTHONPATH', self.prefix.lib) env.prepend_path('PYTHONPATH', self.prefix.lib)
env.prepend_path('PATH', self.prefix.bin) env.prepend_path('PATH', self.prefix.bin)
if "+rpath" not in self.spec:
env.prepend_path('LD_LIBRARY_PATH', self.prefix.lib)
def _process_opts(self, *opt_lists): def _process_opts(self, *opt_lists):
"""Process all provided boolean option lists into CMake arguments. """Process all provided boolean option lists into CMake arguments.