diff --git a/lib/spack/spack/build_systems/intel.py b/lib/spack/spack/build_systems/intel.py index 7bc32d61e24e49ef10d5cc75480d9674c27e94f9..7882d55f8791f085cbc49d156836a159087e6c6c 100644 --- a/lib/spack/spack/build_systems/intel.py +++ b/lib/spack/spack/build_systems/intel.py @@ -935,18 +935,25 @@ def headers(self): @property def libs(self): result = LibraryList([]) + if '+tbb' in self.spec or self.provides('tbb'): + result = self.tbb_libs + result + if '+mkl' in self.spec or self.provides('blas'): + result = self.blas_libs + result + if '+mkl' in self.spec or self.provides('lapack'): + result = self.lapack_libs + result if '+mpi' in self.spec or self.provides('mpi'): # If prefix is too general, recursive searches may get files from # supported but inappropriate sub-architectures like 'mic'. libnames = ['libmpifort', 'libmpi'] if 'cxx' in self.spec.last_query.extra_parameters: libnames = ['libmpicxx'] + libnames - result += find_libraries( + result = find_libraries( libnames, root=self.component_lib_dir('mpi'), - shared=True, recursive=True) + shared=True, recursive=True) + result - # NB: MKL uses domain-specifics: blas_libs/lapack_libs/scalapack_libs + if '+mkl' in self.spec or self.provides('scalapack'): + result = self.scalapack_libs + result debug_print(result) return result diff --git a/var/spack/repos/builtin/packages/intel-mkl/package.py b/var/spack/repos/builtin/packages/intel-mkl/package.py index e447d88894a00b3dd688346abfbf17334c380b8e..2ed678df1f5bd7c9cabc5503c945a5b71c9ffa38 100644 --- a/var/spack/repos/builtin/packages/intel-mkl/package.py +++ b/var/spack/repos/builtin/packages/intel-mkl/package.py @@ -6,7 +6,6 @@ import sys from spack import * -from spack.build_systems.intel import debug_print class IntelMkl(IntelPackage): @@ -65,16 +64,3 @@ class IntelMkl(IntelPackage): if sys.platform == 'darwin': # there is no libmkl_gnu_thread on macOS conflicts('threads=openmp', when='%gcc') - - @property - def libs(self): - libs = LibraryList([]) - if self.provides('blas'): - libs = self.blas_libs - if self.provides('lapack'): - libs = self.lapack_libs + libs - if self.provides('scalapack'): - libs = self.scalapack_libs + libs - - debug_print(libs) - return libs diff --git a/var/spack/repos/builtin/packages/intel-parallel-studio/package.py b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py index b0793adf5fe1638a8528cd5679fb37e39d897fe7..8eaef6bf9a154497fa74f66c465305d1fcd8a8d6 100644 --- a/var/spack/repos/builtin/packages/intel-parallel-studio/package.py +++ b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py @@ -4,7 +4,6 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * -from spack.build_systems.intel import debug_print class IntelParallelStudio(IntelPackage): @@ -196,16 +195,3 @@ def setup_dependent_environment(self, *args): 'F90': spack_fc, 'FC': spack_fc, }) - - @property - def libs(self): - libs = LibraryList([]) - if self.provides('blas'): - libs = self.blas_libs - if self.provides('lapack'): - libs = self.lapack_libs + libs - if self.provides('scalapack'): - libs = self.scalapack_libs + libs - - debug_print(libs) - return libs