diff options
Diffstat (limited to 'var/spack/repos/builtin/packages/cp2k/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/cp2k/package.py | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py index 0909d8cb81..9bc1026ba9 100644 --- a/var/spack/repos/builtin/packages/cp2k/package.py +++ b/var/spack/repos/builtin/packages/cp2k/package.py @@ -37,6 +37,7 @@ class Cp2k(Package): homepage = 'https://www.cp2k.org' url = 'https://sourceforge.net/projects/cp2k/files/cp2k-3.0.tar.bz2' + version('4.1', 'b0534b530592de15ac89828b1541185e') version('3.0', 'c05bc47335f68597a310b1ed75601d35') variant('mpi', default=True, description='Enable MPI support') @@ -47,14 +48,18 @@ class Cp2k(Package): depends_on('lapack') depends_on('blas') depends_on('fftw') - depends_on('libint@:1.2', when='@3.0') + depends_on('libint@:1.2', when='@3.0,4.1') depends_on('mpi', when='+mpi') depends_on('scalapack', when='+mpi') depends_on('plumed+shared+mpi', when='+plumed+mpi') depends_on('plumed+shared~mpi', when='+plumed~mpi') - depends_on('pexsi', when='+mpi') - depends_on('wannier90', when='+mpi') + depends_on('pexsi+fortran', when='+mpi') + + # Apparently cp2k@4.1 needs an "experimental" version of libwannier.a + # which is only available contacting the developer directly. See INSTALL + # in the stage of cp2k@4.1 + depends_on('wannier90', when='@3.0+mpi') depends_on('elpa', when='+mpi') # TODO : add dependency on libsmm, libxsmm @@ -94,6 +99,8 @@ class Cp2k(Package): fcflags.append(spec['fftw'].cppflags) fftw = find_libraries('libfftw3', root=spec['fftw'].prefix.lib) ldflags = [fftw.search_flags] + if 'superlu-dist@4.3' in spec: + ldflags = ['-Wl,--allow-multiple-definition'] + ldflags libs = [ join_path(spec['libint'].prefix.lib, 'libint.so'), join_path(spec['libint'].prefix.lib, 'libderiv.so'), @@ -147,10 +154,12 @@ class Cp2k(Package): cppflags.extend([ '-D__parallel', '-D__LIBPEXSI', - '-D__WANNIER90', '-D__ELPA3', '-D__SCALAPACK' ]) + if 'wannier90' in spec: + cppflags.append('-D__WANNIER90') + fcflags.extend([ # spec['elpa:fortran'].cppflags '-I' + join_path( @@ -167,7 +176,6 @@ class Cp2k(Package): libs.extend([ join_path(spec['elpa'].prefix.lib, 'libelpa.{0}'.format(dso_suffix)), - join_path(spec['wannier90'].prefix.lib, 'libwannier.a'), join_path(spec['pexsi'].prefix.lib, 'libpexsi.a'), join_path(spec['superlu-dist'].prefix.lib, 'libsuperlu_dist.a'), @@ -180,6 +188,13 @@ class Cp2k(Package): 'libmetis.{0}'.format(dso_suffix) ), ]) + + if 'wannier90' in spec: + wannier = join_path( + spec['wannier90'].prefix.lib, 'libwannier.a' + ) + libs.append(wannier) + libs.extend(scalapack) libs.extend(self.spec['mpi'].mpicxx_shared_libs) libs.extend(self.compiler.stdcxx_libs) |