summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/cpmd/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/cpmd/package.py')
-rw-r--r--var/spack/repos/builtin/packages/cpmd/package.py124
1 files changed, 73 insertions, 51 deletions
diff --git a/var/spack/repos/builtin/packages/cpmd/package.py b/var/spack/repos/builtin/packages/cpmd/package.py
index 944be0f218..18d7cad4ed 100644
--- a/var/spack/repos/builtin/packages/cpmd/package.py
+++ b/var/spack/repos/builtin/packages/cpmd/package.py
@@ -20,87 +20,109 @@ class Cpmd(MakefilePackage):
url = "file://{0}/cpmd-v4.3.tar.gz".format(basedir)
manual_download = True
- version('4.3', sha256='4f31ddf045f1ae5d6f25559d85ddbdab4d7a6200362849df833632976d095df4')
-
- variant('omp', description='Enables the use of OMP instructions',
- default=False)
- variant('mpi', description='Build with MPI support', default=False)
-
- depends_on('lapack')
- depends_on('mpi', when='+mpi')
-
- conflicts('^openblas threads=none', when='+omp')
- conflicts('^openblas threads=pthreads', when='+omp')
-
- patch('file://{0}/patch.to.4612'.format(basedir), sha256='3b7d91e04c40418ad958069234ec7253fbf6c4be361a1d5cfd804774eeb44915', level=0, when='@4.3')
- patch('file://{0}/patch.to.4615'.format(basedir), sha256='5ec5790fb6ca64632bcc1b0f5b8f3423c54455766a0979ff4136624bbe8d49eb', level=0, when='@4.3')
- patch('file://{0}/patch.to.4616'.format(basedir), sha256='ac0bc215c4259f55da4dc59803fe636f797e241f8a01974e05730c9778ad44c4', level=0, when='@4.3')
- patch('file://{0}/patch.to.4621'.format(basedir), sha256='2d2bc7e37246032fc354f51da7dbdb5a219dd228867399931b0e94da1265d5ca', level=0, when='@4.3')
- patch('file://{0}/patch.to.4624'.format(basedir), sha256='0a19687528264bf91c9f50ffdc0b920a8511eecf5259b667c8c29350f9dabc53', level=0, when='@4.3')
+ version("4.3", sha256="4f31ddf045f1ae5d6f25559d85ddbdab4d7a6200362849df833632976d095df4")
+
+ variant("omp", description="Enables the use of OMP instructions", default=False)
+ variant("mpi", description="Build with MPI support", default=False)
+
+ depends_on("lapack")
+ depends_on("mpi", when="+mpi")
+
+ conflicts("^openblas threads=none", when="+omp")
+ conflicts("^openblas threads=pthreads", when="+omp")
+
+ patch(
+ "file://{0}/patch.to.4612".format(basedir),
+ sha256="3b7d91e04c40418ad958069234ec7253fbf6c4be361a1d5cfd804774eeb44915",
+ level=0,
+ when="@4.3",
+ )
+ patch(
+ "file://{0}/patch.to.4615".format(basedir),
+ sha256="5ec5790fb6ca64632bcc1b0f5b8f3423c54455766a0979ff4136624bbe8d49eb",
+ level=0,
+ when="@4.3",
+ )
+ patch(
+ "file://{0}/patch.to.4616".format(basedir),
+ sha256="ac0bc215c4259f55da4dc59803fe636f797e241f8a01974e05730c9778ad44c4",
+ level=0,
+ when="@4.3",
+ )
+ patch(
+ "file://{0}/patch.to.4621".format(basedir),
+ sha256="2d2bc7e37246032fc354f51da7dbdb5a219dd228867399931b0e94da1265d5ca",
+ level=0,
+ when="@4.3",
+ )
+ patch(
+ "file://{0}/patch.to.4624".format(basedir),
+ sha256="0a19687528264bf91c9f50ffdc0b920a8511eecf5259b667c8c29350f9dabc53",
+ level=0,
+ when="@4.3",
+ )
def edit(self, spec, prefix):
# patch configure file
- cbase = 'LINUX-GFORTRAN'
- cp = FileFilter(join_path('configure', cbase))
+ cbase = "LINUX-GFORTRAN"
+ cp = FileFilter(join_path("configure", cbase))
# Compilers
- if spec.satisfies('+mpi'):
+ if spec.satisfies("+mpi"):
fc = spec["mpi"].mpifc
cc = spec["mpi"].mpicc
else:
fc = spack_fc
cc = spack_cc
- cp.filter('FC=.+', "FC='{0}'".format(fc))
- cp.filter('CC=.+', "CC='{0}'".format(cc))
- cp.filter('LD=.+', "LD='{0}'".format(fc))
+ cp.filter("FC=.+", "FC='{0}'".format(fc))
+ cp.filter("CC=.+", "CC='{0}'".format(cc))
+ cp.filter("LD=.+", "LD='{0}'".format(fc))
# MPI flag
- if spec.satisfies('+mpi'):
- cp.filter('-D__Linux', '-D__Linux -D__PARALLEL')
+ if spec.satisfies("+mpi"):
+ cp.filter("-D__Linux", "-D__Linux -D__PARALLEL")
# OMP flag
- if spec.satisfies('+omp'):
- cp.filter('-fopenmp', self.compiler.openmp_flag)
+ if spec.satisfies("+omp"):
+ cp.filter("-fopenmp", self.compiler.openmp_flag)
# lapack
- cp.filter(
- 'LIBS=.+',
- "LIBS='{0}'".format(spec['lapack'].libs.ld_flags)
- )
+ cp.filter("LIBS=.+", "LIBS='{0}'".format(spec["lapack"].libs.ld_flags))
# LFLAGS
- cp.filter("'-static '", '')
+ cp.filter("'-static '", "")
# Compiler specific
- if spec.satisfies('%fj'):
- cp.filter('-ffixed-form', '-Fixed')
- cp.filter('-ffree-line-length-none', '')
- cp.filter('-falign-commons', '-Kalign_commons')
+ if spec.satisfies("%fj"):
+ cp.filter("-ffixed-form", "-Fixed")
+ cp.filter("-ffree-line-length-none", "")
+ cp.filter("-falign-commons", "-Kalign_commons")
# create Makefile
- bash = which('bash')
- if spec.satisfies('+omp'):
- bash('./configure.sh', '-omp', cbase)
+ bash = which("bash")
+ if spec.satisfies("+omp"):
+ bash("./configure.sh", "-omp", cbase)
else:
- bash('./configure.sh', cbase)
+ bash("./configure.sh", cbase)
def install(self, spec, prefix):
- install_tree('.', prefix)
+ install_tree(".", prefix)
def test(self):
test_dir = self.test_suite.current_test_data_dir
- test_file = join_path(test_dir, '1-h2o-pbc-geoopt.inp')
+ test_file = join_path(test_dir, "1-h2o-pbc-geoopt.inp")
opts = []
- if self.spec.satisfies('+mpi'):
- exe_name = self.spec['mpi'].prefix.bin.mpirun
- opts.extend(['-n', '2'])
- opts.append(join_path(self.prefix.bin, 'cpmd.x'))
+ if self.spec.satisfies("+mpi"):
+ exe_name = self.spec["mpi"].prefix.bin.mpirun
+ opts.extend(["-n", "2"])
+ opts.append(join_path(self.prefix.bin, "cpmd.x"))
else:
- exe_name = 'cpmd.x'
+ exe_name = "cpmd.x"
opts.append(test_file)
opts.append(test_dir)
- expected = ['2 1 H O 1.84444 0.97604',
- '3 1 H O 1.84444 0.97604',
- '2 1 3 H O H 103.8663'
- ]
+ expected = [
+ "2 1 H O 1.84444 0.97604",
+ "3 1 H O 1.84444 0.97604",
+ "2 1 3 H O H 103.8663",
+ ]
self.run_test(exe_name, options=opts, expected=expected)