Skip to content
Snippets Groups Projects
Commit cacfc3a6 authored by Peter Scheibel's avatar Peter Scheibel Committed by Massimiliano Culpo
Browse files

Handle external perl (#13903)

* dont add perl bin directory to PATH when setting up env (this is already handled by spack core in a way that omits system dirs); also consolidate repeated logic between build/run env setup.

* the bin/ dir of each dependency is already added to PATH in Spack core, so there is no need to do this in the Perl package
parent 4dca63f0
No related branches found
No related tags found
No related merge requests found
...@@ -165,43 +165,24 @@ def install_cpanm(self): ...@@ -165,43 +165,24 @@ def install_cpanm(self):
make() make()
make('install') make('install')
def setup_dependent_build_environment(self, env, dependent_spec): def _setup_dependent_env(self, env, dependent_spec, deptypes):
"""Set PATH and PERL5LIB to include the extension and """Set PATH and PERL5LIB to include the extension and
any other perl extensions it depends on, any other perl extensions it depends on,
assuming they were installed with INSTALL_BASE defined.""" assuming they were installed with INSTALL_BASE defined."""
perl_lib_dirs = [join_path(self.spec.prefix.lib, perl_lib_dirs = []
str(self.spec.version))] for d in dependent_spec.traverse(deptype=deptypes):
perl_bin_dirs = [self.spec.prefix.bin]
for d in dependent_spec.traverse(
deptype=('build', 'run'), deptype_query='run'):
if d.package.extends(self.spec): if d.package.extends(self.spec):
perl_lib_dirs.append(d.prefix.lib.perl5) perl_lib_dirs.append(d.prefix.lib.perl5)
perl_bin_dirs.append(d.prefix.bin)
if perl_bin_dirs:
perl_bin_path = ':'.join(perl_bin_dirs)
env.prepend_path('PATH', perl_bin_path)
if perl_lib_dirs: if perl_lib_dirs:
perl_lib_path = ':'.join(perl_lib_dirs) perl_lib_path = ':'.join(perl_lib_dirs)
env.prepend_path('PERL5LIB', perl_lib_path) env.prepend_path('PERL5LIB', perl_lib_path)
def setup_dependent_build_environment(self, env, dependent_spec):
self._setup_dependent_env(env, dependent_spec,
deptypes=('build', 'run'))
def setup_dependent_run_environment(self, env, dependent_spec): def setup_dependent_run_environment(self, env, dependent_spec):
"""Set PATH and PERL5LIB to include the extension and self._setup_dependent_env(env, dependent_spec, deptypes=('run',))
any other perl extensions it depends on,
assuming they were installed with INSTALL_BASE defined."""
perl_lib_dirs = [join_path(self.spec.prefix.lib,
str(self.spec.version))]
perl_bin_dirs = [self.spec.prefix.bin]
for d in dependent_spec.traverse(
deptype=('run',), deptype_query='run'):
if d.package.extends(self.spec):
perl_lib_dirs.append(d.prefix.lib.perl5)
perl_bin_dirs.append(d.prefix.bin)
if perl_bin_dirs:
perl_bin_path = ':'.join(perl_bin_dirs)
env.prepend_path('PATH', perl_bin_path)
if perl_lib_dirs:
perl_lib_path = ':'.join(perl_lib_dirs)
env.prepend_path('PERL5LIB', perl_lib_path)
def setup_dependent_package(self, module, dependent_spec): def setup_dependent_package(self, module, dependent_spec):
"""Called before perl modules' install() methods. """Called before perl modules' install() methods.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment