summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/build_environment.py7
-rw-r--r--lib/spack/spack/package.py4
2 files changed, 8 insertions, 3 deletions
diff --git a/lib/spack/spack/build_environment.py b/lib/spack/spack/build_environment.py
index 770e191ac9..d321a0e495 100644
--- a/lib/spack/spack/build_environment.py
+++ b/lib/spack/spack/build_environment.py
@@ -178,6 +178,7 @@ def set_build_environment_variables(pkg):
return env
+
def set_module_variables_for_package(pkg, m):
"""Populate the module scope of install() with some useful functions.
This makes things easier for package writers.
@@ -272,7 +273,6 @@ def setup_package(pkg):
env = EnvironmentModifications()
env.extend(set_compiler_environment_variables(pkg))
env.extend(set_build_environment_variables(pkg))
- apply_environment_modifications(env)
# If a user makes their own package repo, e.g.
# spack.repos.mystuff.libelf.Libelf, and they inherit from
# an existing class like spack.repos.original.libelf.Libelf,
@@ -284,8 +284,9 @@ def setup_package(pkg):
# Allow dependencies to set up environment as well.
for dep_spec in pkg.spec.traverse(root=False):
- dep_spec.package.setup_dependent_environment(
- pkg.module, dep_spec, pkg.spec)
+ env.extend(dep_spec.package.environment_modifications(pkg.module, dep_spec, pkg.spec))
+ dep_spec.package.setup_dependent_environment(pkg.module, dep_spec, pkg.spec)
+ apply_environment_modifications(env)
def fork(pkg, function):
diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py
index 696adaf896..224d7f8f4b 100644
--- a/lib/spack/spack/package.py
+++ b/lib/spack/spack/package.py
@@ -63,6 +63,7 @@ import spack.build_environment
import spack.url
import spack.util.web
import spack.fetch_strategy as fs
+from spack.environment import EnvironmentModifications
from spack.version import *
from spack.stage import Stage, ResourceStage, StageComposite
from spack.util.compression import allowed_archive, extension
@@ -983,6 +984,9 @@ class Package(object):
fromlist=[self.__class__.__name__])
+ def environment_modifications(self, module, spec, dependent_spec):
+ return EnvironmentModifications()
+
def setup_dependent_environment(self, module, spec, dependent_spec):
"""Called before the install() method of dependents.