summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/arpack-ng/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/arpack-ng/package.py')
-rw-r--r--var/spack/repos/builtin/packages/arpack-ng/package.py174
1 files changed, 89 insertions, 85 deletions
diff --git a/var/spack/repos/builtin/packages/arpack-ng/package.py b/var/spack/repos/builtin/packages/arpack-ng/package.py
index 9015ee2223..20357d7c25 100644
--- a/var/spack/repos/builtin/packages/arpack-ng/package.py
+++ b/var/spack/repos/builtin/packages/arpack-ng/package.py
@@ -34,134 +34,138 @@ class ArpackNg(Package):
arpack-ng is replacing arpack almost everywhere.
"""
- homepage = 'https://github.com/opencollab/arpack-ng'
- url = 'https://github.com/opencollab/arpack-ng/archive/3.3.0.tar.gz'
- git = 'https://github.com/opencollab/arpack-ng.git'
-
- version('develop', branch='master')
- version('3.8.0', sha256='ada5aeb3878874383307239c9235b716a8a170c6d096a6625bfd529844df003d')
- version('3.7.0', sha256='972e3fc3cd0b9d6b5a737c9bf6fd07515c0d6549319d4ffb06970e64fa3cc2d6')
- version('3.6.3', sha256='64f3551e5a2f8497399d82af3076b6a33bf1bc95fc46bbcabe66442db366f453')
- version('3.6.2', sha256='673c8202de996fd3127350725eb1818e534db4e79de56d5dcee8c00768db599a')
- version('3.6.0', sha256='3c88e74cc10bba81dc2c72c4f5fff38a800beebaa0b4c64d321c28c9203b37ea')
- version('3.5.0', sha256='50f7a3e3aec2e08e732a487919262238f8504c3ef927246ec3495617dde81239')
- version('3.4.0', sha256='69e9fa08bacb2475e636da05a6c222b17c67f1ebeab3793762062248dd9d842f')
- version('3.3.0', sha256='ad59811e7d79d50b8ba19fd908f92a3683d883597b2c7759fdcc38f6311fe5b3', deprecated=True)
-
- variant('shared', default=True,
- description='Enables the build of shared libraries')
- variant('mpi', default=True, description='Activates MPI support')
+ homepage = "https://github.com/opencollab/arpack-ng"
+ url = "https://github.com/opencollab/arpack-ng/archive/3.3.0.tar.gz"
+ git = "https://github.com/opencollab/arpack-ng.git"
+
+ version("develop", branch="master")
+ version("3.8.0", sha256="ada5aeb3878874383307239c9235b716a8a170c6d096a6625bfd529844df003d")
+ version("3.7.0", sha256="972e3fc3cd0b9d6b5a737c9bf6fd07515c0d6549319d4ffb06970e64fa3cc2d6")
+ version("3.6.3", sha256="64f3551e5a2f8497399d82af3076b6a33bf1bc95fc46bbcabe66442db366f453")
+ version("3.6.2", sha256="673c8202de996fd3127350725eb1818e534db4e79de56d5dcee8c00768db599a")
+ version("3.6.0", sha256="3c88e74cc10bba81dc2c72c4f5fff38a800beebaa0b4c64d321c28c9203b37ea")
+ version("3.5.0", sha256="50f7a3e3aec2e08e732a487919262238f8504c3ef927246ec3495617dde81239")
+ version("3.4.0", sha256="69e9fa08bacb2475e636da05a6c222b17c67f1ebeab3793762062248dd9d842f")
+ version(
+ "3.3.0",
+ sha256="ad59811e7d79d50b8ba19fd908f92a3683d883597b2c7759fdcc38f6311fe5b3",
+ deprecated=True,
+ )
+
+ variant("shared", default=True, description="Enables the build of shared libraries")
+ variant("mpi", default=True, description="Activates MPI support")
# The function pdlamch10 does not set the return variable.
# This is fixed upstream
# see https://github.com/opencollab/arpack-ng/issues/34
- patch('pdlamch10.patch', when='@3.3.0')
+ patch("pdlamch10.patch", when="@3.3.0")
- patch('make_install.patch', when='@3.4.0')
- patch('parpack_cmake.patch', when='@3.4.0')
+ patch("make_install.patch", when="@3.4.0")
+ patch("parpack_cmake.patch", when="@3.4.0")
# Fujitsu compiler does not support 'isnan' function.
# isnan: function that determines whether it is NaN.
- patch('incompatible_isnan_fix.patch', when='%fj')
- patch('incompatible_isnan_fix.patch', when='@3.7.0%xl')
- patch('incompatible_isnan_fix.patch', when='@3.7.0%xl_r')
+ patch("incompatible_isnan_fix.patch", when="%fj")
+ patch("incompatible_isnan_fix.patch", when="@3.7.0%xl")
+ patch("incompatible_isnan_fix.patch", when="@3.7.0%xl_r")
- patch('xlf.patch', when='@3.7.0%xl', level=0)
- patch('xlf.patch', when='@3.7.0%xl_r', level=0)
+ patch("xlf.patch", when="@3.7.0%xl", level=0)
+ patch("xlf.patch", when="@3.7.0%xl_r", level=0)
- depends_on('blas')
- depends_on('lapack')
- depends_on('automake', when='@3.3.0', type='build')
- depends_on('autoconf', when='@3.3.0', type='build')
- depends_on('libtool@2.4.2:', when='@3.3.0', type='build')
- depends_on('cmake@2.8.6:', when='@3.4.0:', type='build')
+ depends_on("blas")
+ depends_on("lapack")
+ depends_on("automake", when="@3.3.0", type="build")
+ depends_on("autoconf", when="@3.3.0", type="build")
+ depends_on("libtool@2.4.2:", when="@3.3.0", type="build")
+ depends_on("cmake@2.8.6:", when="@3.4.0:", type="build")
- depends_on('mpi', when='+mpi')
+ depends_on("mpi", when="+mpi")
@property
def libs(self):
# TODO: do we need spec['arpack-ng:parallel'].libs ?
# query_parameters = self.spec.last_query.extra_parameters
- libraries = ['libarpack']
+ libraries = ["libarpack"]
- if '+mpi' in self.spec:
- libraries = ['libparpack'] + libraries
+ if "+mpi" in self.spec:
+ libraries = ["libparpack"] + libraries
- return find_libraries(
- libraries, root=self.prefix, shared=True, recursive=True
- )
+ return find_libraries(libraries, root=self.prefix, shared=True, recursive=True)
- @when('@:3.7.0 %gcc@10:')
+ @when("@:3.7.0 %gcc@10:")
def setup_build_environment(self, env):
# version up to and including 3.7.0 are not ported to gcc 10
# https://github.com/opencollab/arpack-ng/issues/242
- env.set('FFLAGS', '-fallow-argument-mismatch')
+ env.set("FFLAGS", "-fallow-argument-mismatch")
- @when('@3.4.0:')
+ @when("@3.4.0:")
def install(self, spec, prefix):
- options = ['-DEXAMPLES=ON']
+ options = ["-DEXAMPLES=ON"]
options.extend(std_cmake_args)
- options.append('-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % prefix)
+ options.append("-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib" % prefix)
# Make sure we use Spack's blas/lapack:
- lapack_libs = spec['lapack'].libs.joined(';')
- blas_libs = spec['blas'].libs.joined(';')
-
- options.extend([
- '-DLAPACK_FOUND=true',
- '-DLAPACK_INCLUDE_DIRS={0}'.format(spec['lapack'].prefix.include),
- '-DLAPACK_LIBRARIES={0}'.format(lapack_libs),
- '-DBLAS_FOUND=true',
- '-DBLAS_INCLUDE_DIRS={0}'.format(spec['blas'].prefix.include),
- '-DBLAS_LIBRARIES={0}'.format(blas_libs)
- ])
+ lapack_libs = spec["lapack"].libs.joined(";")
+ blas_libs = spec["blas"].libs.joined(";")
+
+ options.extend(
+ [
+ "-DLAPACK_FOUND=true",
+ "-DLAPACK_INCLUDE_DIRS={0}".format(spec["lapack"].prefix.include),
+ "-DLAPACK_LIBRARIES={0}".format(lapack_libs),
+ "-DBLAS_FOUND=true",
+ "-DBLAS_INCLUDE_DIRS={0}".format(spec["blas"].prefix.include),
+ "-DBLAS_LIBRARIES={0}".format(blas_libs),
+ ]
+ )
- if '+mpi' in spec:
- options.append('-DMPI=ON')
+ if "+mpi" in spec:
+ options.append("-DMPI=ON")
# If 64-bit BLAS is used:
- if (spec.satisfies('^openblas+ilp64') or
- spec.satisfies('^intel-mkl+ilp64') or
- spec.satisfies('^intel-parallel-studio+mkl+ilp64')):
- options.append('-DINTERFACE64=1')
-
- if '+shared' in spec:
- options.append('-DBUILD_SHARED_LIBS=ON')
+ if (
+ spec.satisfies("^openblas+ilp64")
+ or spec.satisfies("^intel-mkl+ilp64")
+ or spec.satisfies("^intel-parallel-studio+mkl+ilp64")
+ ):
+ options.append("-DINTERFACE64=1")
+
+ if "+shared" in spec:
+ options.append("-DBUILD_SHARED_LIBS=ON")
else:
- options.append('-DBUILD_SHARED_LIBS=OFF')
- options.append('-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true')
+ options.append("-DBUILD_SHARED_LIBS=OFF")
+ options.append("-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true")
- cmake('.', *options)
+ cmake(".", *options)
make()
if self.run_tests:
- make('test')
- make('install')
+ make("test")
+ make("install")
- @when('@3.3.0')
+ @when("@3.3.0")
def install(self, spec, prefix):
# Apparently autotools are not bootstrapped
- which('libtoolize')()
- bootstrap = Executable('./bootstrap')
+ which("libtoolize")()
+ bootstrap = Executable("./bootstrap")
- options = ['--prefix=%s' % prefix]
+ options = ["--prefix=%s" % prefix]
- if '+mpi' in spec:
- options.extend([
- '--enable-mpi',
- 'F77=%s' % spec['mpi'].mpif77
- ])
+ if "+mpi" in spec:
+ options.extend(["--enable-mpi", "F77=%s" % spec["mpi"].mpif77])
- options.extend([
- '--with-blas={0}'.format(spec['blas'].libs.ld_flags),
- '--with-lapack={0}'.format(spec['lapack'].libs.ld_flags)
- ])
- if '+shared' not in spec:
- options.append('--enable-shared=no')
+ options.extend(
+ [
+ "--with-blas={0}".format(spec["blas"].libs.ld_flags),
+ "--with-lapack={0}".format(spec["lapack"].libs.ld_flags),
+ ]
+ )
+ if "+shared" not in spec:
+ options.append("--enable-shared=no")
bootstrap()
configure(*options)
make()
if self.run_tests:
- make('check')
- make('install')
+ make("check")
+ make("install")