diff options
author | Greg Becker <becker33@llnl.gov> | 2019-04-15 17:41:15 -0700 |
---|---|---|
committer | Peter Scheibel <scheibel1@llnl.gov> | 2019-04-15 17:41:15 -0700 |
commit | 5f74f22dc6eb9a337a881fc7550bd2e320406f00 (patch) | |
tree | 83a6c7df6ee7dfeb1bff3a10be22c97221bc9b74 | |
parent | a49de9eb0983a8f3d6ed71957976e6bb0a7f5631 (diff) | |
download | spack-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.
-rw-r--r-- | lib/spack/spack/package.py | 17 |
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)) |