diff options
author | Todd Gamblin <tgamblin@llnl.gov> | 2022-07-30 15:19:18 -0700 |
---|---|---|
committer | Todd Gamblin <tgamblin@llnl.gov> | 2022-07-31 13:29:20 -0700 |
commit | f52f6e99dbf1131886a80112b8c79dfc414afb7c (patch) | |
tree | 05cb7d64b2395922f2f24683da49f472075be12c /var/spack/repos/tutorial/packages/netlib-lapack | |
parent | 549ba1ed32372c67fc57271cde3797d58b7dec6e (diff) | |
download | spack-f52f6e99dbf1131886a80112b8c79dfc414afb7c.tar.gz spack-f52f6e99dbf1131886a80112b8c79dfc414afb7c.tar.bz2 spack-f52f6e99dbf1131886a80112b8c79dfc414afb7c.tar.xz spack-f52f6e99dbf1131886a80112b8c79dfc414afb7c.zip |
black: reformat entire repository with black
Diffstat (limited to 'var/spack/repos/tutorial/packages/netlib-lapack')
-rw-r--r-- | var/spack/repos/tutorial/packages/netlib-lapack/package.py | 179 |
1 files changed, 94 insertions, 85 deletions
diff --git a/var/spack/repos/tutorial/packages/netlib-lapack/package.py b/var/spack/repos/tutorial/packages/netlib-lapack/package.py index 01c987aafd..e5bdba132b 100644 --- a/var/spack/repos/tutorial/packages/netlib-lapack/package.py +++ b/var/spack/repos/tutorial/packages/netlib-lapack/package.py @@ -14,50 +14,51 @@ class NetlibLapack(CMakePackage): package that has found extensive use in the scientific community. """ + homepage = "http://www.netlib.org/lapack/" url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz" - version('3.8.0', '96591affdbf58c450d45c1daa540dbd2', - url='http://www.netlib.org/lapack/lapack-3.8.0.tar.gz') - version('3.7.1', 'dcdeeed73de152c4643ccc5b1aeb453c') - version('3.7.0', '697bb8d67c7d336a0f339cc9dd0fa72f') - version('3.6.1', '421b2cb72e15f237e144428f9c460ee0') - version('3.6.0', 'f2f6c67134e851fe189bb3ca1fbb5101') - version('3.5.0', 'b1d3e3e425b2e44a06760ff173104bdf') - version('3.4.2', '61bf1a8a4469d4bdb7604f5897179478') - version('3.4.1', '44c3869c38c8335c2b9c2a8bb276eb55') - version('3.4.0', '02d5706ec03ba885fc246e5fa10d8c70') - version('3.3.1', 'd0d533ec9a5b74933c2a1e84eedc58b4') - - variant('shared', default=True, description="Build shared library version") - variant('external-blas', default=False, - description='Build lapack with an external blas') - - variant('lapacke', default=True, - description='Activates the build of the LAPACKE C interface') - variant('xblas', default=False, - description='Builds extended precision routines using XBLAS') - - patch('ibm-xl.patch', when='@3.7: %xl') - patch('ibm-xl.patch', when='@3.7: %xl_r') + version( + "3.8.0", + "96591affdbf58c450d45c1daa540dbd2", + url="http://www.netlib.org/lapack/lapack-3.8.0.tar.gz", + ) + version("3.7.1", "dcdeeed73de152c4643ccc5b1aeb453c") + version("3.7.0", "697bb8d67c7d336a0f339cc9dd0fa72f") + version("3.6.1", "421b2cb72e15f237e144428f9c460ee0") + version("3.6.0", "f2f6c67134e851fe189bb3ca1fbb5101") + version("3.5.0", "b1d3e3e425b2e44a06760ff173104bdf") + version("3.4.2", "61bf1a8a4469d4bdb7604f5897179478") + version("3.4.1", "44c3869c38c8335c2b9c2a8bb276eb55") + version("3.4.0", "02d5706ec03ba885fc246e5fa10d8c70") + version("3.3.1", "d0d533ec9a5b74933c2a1e84eedc58b4") + + variant("shared", default=True, description="Build shared library version") + variant("external-blas", default=False, description="Build lapack with an external blas") + + variant("lapacke", default=True, description="Activates the build of the LAPACKE C interface") + variant("xblas", default=False, description="Builds extended precision routines using XBLAS") + + patch("ibm-xl.patch", when="@3.7: %xl") + patch("ibm-xl.patch", when="@3.7: %xl_r") # https://github.com/Reference-LAPACK/lapack/issues/228 # TODO: update 'when' once the version of lapack # containing the fix is released and added to Spack. - patch('undefined_declarations.patch', when='@3.8.0:') + patch("undefined_declarations.patch", when="@3.8.0:") # https://github.com/Reference-LAPACK/lapack/pull/268 # TODO: update 'when' once the version of lapack # containing the fix is released and added to Spack. - patch('testing.patch', when='@3.7.0:') + patch("testing.patch", when="@3.7.0:") # virtual dependency - provides('blas', when='~external-blas') - provides('lapack') + provides("blas", when="~external-blas") + provides("lapack") - depends_on('blas', when='+external-blas') - depends_on('netlib-xblas+fortran+plain_blas', when='+xblas') - depends_on('python@2.7:', type='test') + depends_on("blas", when="+external-blas") + depends_on("netlib-xblas+fortran+plain_blas", when="+xblas") + depends_on("python@2.7:", type="test") # We need to run every phase twice in order to get static and shared # versions of the libraries. When ~shared, we run the default @@ -73,34 +74,34 @@ class NetlibLapack(CMakePackage): def patch(self): # Fix cblas CMakeLists.txt -- has wrong case for subdirectory name. - if self.spec.satisfies('@3.6.0:'): + if self.spec.satisfies("@3.6.0:"): filter_file( - '${CMAKE_CURRENT_SOURCE_DIR}/CMAKE/', - '${CMAKE_CURRENT_SOURCE_DIR}/cmake/', - 'CBLAS/CMakeLists.txt', string=True) + "${CMAKE_CURRENT_SOURCE_DIR}/CMAKE/", + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/", + "CBLAS/CMakeLists.txt", + string=True, + ) @property def blas_libs(self): - shared = True if '+shared' in self.spec else False + shared = True if "+shared" in self.spec else False query_parameters = self.spec.last_query.extra_parameters query2libraries = { - tuple(): ['libblas'], - ('c', 'fortran'): [ - 'libcblas', - 'libblas', + tuple(): ["libblas"], + ("c", "fortran"): [ + "libcblas", + "libblas", + ], + ("c",): [ + "libcblas", ], - ('c',): [ - 'libcblas', + ("fortran",): [ + "libblas", ], - ('fortran',): [ - 'libblas', - ] } key = tuple(sorted(query_parameters)) libraries = query2libraries[key] - return find_libraries( - libraries, root=self.prefix, shared=shared, recursive=True - ) + return find_libraries(libraries, root=self.prefix, shared=shared, recursive=True) # TUTORIAL: add a proper `lapack_lib` property, along the lines # of the `blas_lib` property above. The library that provides @@ -109,78 +110,86 @@ class NetlibLapack(CMakePackage): @property def headers(self): include_dir = self.spec.prefix.include - cblas_h = join_path(include_dir, 'cblas.h') - lapacke_h = join_path(include_dir, 'lapacke.h') + cblas_h = join_path(include_dir, "cblas.h") + lapacke_h = join_path(include_dir, "lapacke.h") return HeaderList([cblas_h, lapacke_h]) @property def build_directory(self): - return join_path(self.stage.source_path, - 'spack-build-shared' if self._building_shared - else 'spack-build-static') + return join_path( + self.stage.source_path, + "spack-build-shared" if self._building_shared else "spack-build-static", + ) def cmake_args(self): - args = ['-DBUILD_SHARED_LIBS:BOOL=' + - ('ON' if self._building_shared else 'OFF')] + args = ["-DBUILD_SHARED_LIBS:BOOL=" + ("ON" if self._building_shared else "OFF")] - if self.spec.satisfies('+lapacke'): - args.extend(['-DLAPACKE:BOOL=ON', '-DLAPACKE_WITH_TMG:BOOL=ON']) + if self.spec.satisfies("+lapacke"): + args.extend(["-DLAPACKE:BOOL=ON", "-DLAPACKE_WITH_TMG:BOOL=ON"]) else: - args.extend(['-DLAPACKE:BOOL=OFF', '-DLAPACKE_WITH_TMG:BOOL=OFF']) + args.extend(["-DLAPACKE:BOOL=OFF", "-DLAPACKE_WITH_TMG:BOOL=OFF"]) - if self.spec.satisfies('@3.6.0:'): - args.append('-DCBLAS=ON') # always build CBLAS + if self.spec.satisfies("@3.6.0:"): + args.append("-DCBLAS=ON") # always build CBLAS - if self.spec.satisfies('%intel'): + if self.spec.satisfies("%intel"): # Intel compiler finds serious syntax issues when trying to # build CBLAS and LapackE - args.extend(['-DCBLAS=OFF', '-DLAPACKE:BOOL=OFF']) + args.extend(["-DCBLAS=OFF", "-DLAPACKE:BOOL=OFF"]) - if self.spec.satisfies('%xl') or self.spec.satisfies('%xl_r'): + if self.spec.satisfies("%xl") or self.spec.satisfies("%xl_r"): # use F77 compiler if IBM XL - args.extend(['-DCMAKE_Fortran_COMPILER=' + self.compiler.f77, - '-DCMAKE_Fortran_FLAGS=' + - (' '.join(self.spec.compiler_flags['fflags'])) + - " -O3 -qnohot"]) + args.extend( + [ + "-DCMAKE_Fortran_COMPILER=" + self.compiler.f77, + "-DCMAKE_Fortran_FLAGS=" + + (" ".join(self.spec.compiler_flags["fflags"])) + + " -O3 -qnohot", + ] + ) # deprecated routines are commonly needed by, for example, suitesparse # Note that OpenBLAS spack is built with deprecated routines - args.append('-DBUILD_DEPRECATED:BOOL=ON') - - if self.spec.satisfies('+external-blas'): - args.extend(['-DUSE_OPTIMIZED_BLAS:BOOL=ON', - '-DBLAS_LIBRARIES:PATH=' + - self.spec['blas'].libs.joined(';')]) - - if self.spec.satisfies('+xblas'): - args.extend(['-DXBLAS_INCLUDE_DIR=' + - self.spec['netlib-xblas'].prefix.include, - '-DXBLAS_LIBRARY=' + - self.spec['netlib-xblas'].libs.joined(';')]) - - args.append('-DBUILD_TESTING:BOOL=' + - ('ON' if self.run_tests else 'OFF')) + args.append("-DBUILD_DEPRECATED:BOOL=ON") + + if self.spec.satisfies("+external-blas"): + args.extend( + [ + "-DUSE_OPTIMIZED_BLAS:BOOL=ON", + "-DBLAS_LIBRARIES:PATH=" + self.spec["blas"].libs.joined(";"), + ] + ) + + if self.spec.satisfies("+xblas"): + args.extend( + [ + "-DXBLAS_INCLUDE_DIR=" + self.spec["netlib-xblas"].prefix.include, + "-DXBLAS_LIBRARY=" + self.spec["netlib-xblas"].libs.joined(";"), + ] + ) + + args.append("-DBUILD_TESTING:BOOL=" + ("ON" if self.run_tests else "OFF")) return args # Build, install, and check both static and shared versions of the # libraries when +shared - @when('+shared') + @when("+shared") def cmake(self, spec, prefix): for self._building_shared in (False, True): super(NetlibLapack, self).cmake(spec, prefix) - @when('+shared') + @when("+shared") def build(self, spec, prefix): for self._building_shared in (False, True): super(NetlibLapack, self).build(spec, prefix) - @when('+shared') + @when("+shared") def install(self, spec, prefix): for self._building_shared in (False, True): super(NetlibLapack, self).install(spec, prefix) - @when('+shared') + @when("+shared") def check(self): for self._building_shared in (False, True): super(NetlibLapack, self).check() |