summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGreg Becker <becker33@llnl.gov>2019-04-15 17:41:15 -0700
committerPeter Scheibel <scheibel1@llnl.gov>2019-04-15 17:41:15 -0700
commit5f74f22dc6eb9a337a881fc7550bd2e320406f00 (patch)
tree83a6c7df6ee7dfeb1bff3a10be22c97221bc9b74 /lib
parenta49de9eb0983a8f3d6ed71957976e6bb0a7f5631 (diff)
downloadspack-5f74f22dc6eb9a337a881fc7550bd2e320406f00.tar.gz
spack-5f74f22dc6eb9a337a881fc7550bd2e320406f00.tar.bz2
spack-5f74f22dc6eb9a337a881fc7550bd2e320406f00.tar.xz
spack-5f74f22dc6eb9a337a881fc7550bd2e320406f00.zip
Bugfix: Install missing compilers for dependency packages (#11175)
Compilers are treated separately from other dependencies in Spack. #10761 added the option to automatically install compilers when a package specifies using a compiler that is not available in Spack. However, this did not work correctly for dependency packages (it would only build a compiler for the root of an install DAG). This commit enables the building of compilers for dependency packages.
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/package.py17
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py
index 6f90b3e162..b54a8abb74 100644
--- a/lib/spack/spack/package.py
+++ b/lib/spack/spack/package.py
@@ -1441,17 +1441,16 @@ class PackageBase(with_metaclass(PackageMeta, PackageViewMixin, object)):
dep_kwargs['explicit'] = False
dep_kwargs['install_deps'] = False
for dep in self.spec.traverse(order='post', root=False):
+ if spack.config.get('config:install_missing_compilers', False):
+ tty.debug('Bootstrapping {0} compiler for {1}'.format(
+ self.spec.compiler, self.name
+ ))
+ comp_kwargs = kwargs.copy()
+ comp_kwargs['explicit'] = False
+ comp_kwargs['install_deps'] = True
+ dep.package.bootstrap_compiler(**comp_kwargs)
dep.package.do_install(**dep_kwargs)
- # Then, install the compiler if it is not already installed.
- if install_deps:
- tty.debug('Boostrapping {0} compiler for {1}'.format(
- self.spec.compiler, self.name
- ))
- comp_kwargs = kwargs.copy()
- comp_kwargs['explicit'] = False
- self.bootstrap_compiler(**comp_kwargs)
-
# Then, install the package proper
tty.msg(colorize('@*{Installing} @*g{%s}' % self.name))