From 1f1ea2c8596c8b2985a39a81f8e9a53422bff9a2 Mon Sep 17 00:00:00 2001
From: Denis Davydov <davydden@gmail.com>
Date: Tue, 9 Apr 2019 22:54:21 +0200
Subject: [PATCH] intel: consolidate libs() in the base class (#11143)

* intel: consolidate libs() in the base class

* white space

* flake8
---
 lib/spack/spack/build_systems/intel.py             | 13 ++++++++++---
 .../repos/builtin/packages/intel-mkl/package.py    | 14 --------------
 .../packages/intel-parallel-studio/package.py      | 14 --------------
 3 files changed, 10 insertions(+), 31 deletions(-)

diff --git a/lib/spack/spack/build_systems/intel.py b/lib/spack/spack/build_systems/intel.py
index 7bc32d61e2..7882d55f87 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 e447d88894..2ed678df1f 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 b0793adf5f..8eaef6bf9a 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
-- 
GitLab