diff options
author | Glenn Johnson <glenn-johnson@uiowa.edu> | 2019-05-09 20:54:05 -0500 |
---|---|---|
committer | Peter Scheibel <scheibel1@llnl.gov> | 2019-05-10 10:54:05 +0900 |
commit | c752af098d6f70005b5bf178bb49d5cb1f709f85 (patch) | |
tree | 25f86441f46f4297d63e27372e8ee90bcdd033ed | |
parent | 3d3cea1c870b9be391437023163ed2608e8121a1 (diff) | |
download | spack-c752af098d6f70005b5bf178bb49d5cb1f709f85.tar.gz spack-c752af098d6f70005b5bf178bb49d5cb1f709f85.tar.bz2 spack-c752af098d6f70005b5bf178bb49d5cb1f709f85.tar.xz spack-c752af098d6f70005b5bf178bb49d5cb1f709f85.zip |
Intel packages: multiple installs and optional scalapack libs (#11384)
Add fixes to support multiple installs and dependents using a subset
of IntelPackage functionality.
* Update IntelPackage to only return scalapack libraries if the root
spec depends on MPI: scalapack requires MPI to be mentioned as a
dependency in the DAG. Package builds using intel-mkl for its
blas/lapack implementations but not for scalapack were failing to
build.
Ideally it would be possible to ask if any of the packages in the
DAG are actually requesting the scalapack functionality provided by
the IntelPackage and only return scalapack libs in that case, but
that is not easily done at this time.
Fixes #11314
Fixes #11289
* set HOME when the intel silent installer is run. This prevents the
installer from using the ~/intel directory (which can cause
conflicts for multiple installs of the same IntelPackage)
Fixes #9713
-rw-r--r-- | lib/spack/spack/build_systems/intel.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/spack/spack/build_systems/intel.py b/lib/spack/spack/build_systems/intel.py index 152e5eec16..36e0b966d1 100644 --- a/lib/spack/spack/build_systems/intel.py +++ b/lib/spack/spack/build_systems/intel.py @@ -964,7 +964,8 @@ class IntelPackage(PackageBase): root=self.component_lib_dir('mpi'), shared=True, recursive=True) + result - if '+mkl' in self.spec or self.provides('scalapack'): + if '^mpi' in self.spec.root and ('+mkl' in self.spec or + self.provides('scalapack')): result = self.scalapack_libs + result debug_print(result) @@ -1199,6 +1200,9 @@ class IntelPackage(PackageBase): install_script = Executable('./install.sh') install_script.add_default_env('TMPDIR', tmpdir) + # Need to set HOME to avoid using ~/intel + install_script.add_default_env('HOME', prefix) + # perform install_script('--silent', 'silent.cfg') |