Skip to content
Snippets Groups Projects
Commit eaefaaba authored by Denis Davydov's avatar Denis Davydov Committed by Massimiliano Culpo
Browse files

espresso: add 6.1.0 (#3881)

* espresso: fix missing dependency on elpa, add 6.1.0

* override default libs of elpa to get shared always
parent 13911f1b
No related tags found
No related merge requests found
...@@ -32,7 +32,8 @@ class Elpa(AutotoolsPackage): ...@@ -32,7 +32,8 @@ class Elpa(AutotoolsPackage):
homepage = 'http://elpa.mpcdf.mpg.de/' homepage = 'http://elpa.mpcdf.mpg.de/'
url = 'http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz' url = 'http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz'
version('2016.05.004', 'c0dd3a53055536fc3a2a221e78d8b376') version('2016.11.001.pre', '5656fd066cf0dcd071dbcaf20a639b37')
version('2016.05.004', 'c0dd3a53055536fc3a2a221e78d8b376', preferred=True)
version('2016.05.003', '88a9f3f3bfb63e16509dd1be089dcf2c') version('2016.05.003', '88a9f3f3bfb63e16509dd1be089dcf2c')
version('2015.11.001', 'de0f35b7ee7c971fd0dca35c900b87e6') version('2015.11.001', 'de0f35b7ee7c971fd0dca35c900b87e6')
...@@ -49,8 +50,18 @@ def url_for_version(self, version): ...@@ -49,8 +50,18 @@ def url_for_version(self, version):
t = 'http://elpa.mpcdf.mpg.de/elpa-{0}.tar.gz' t = 'http://elpa.mpcdf.mpg.de/elpa-{0}.tar.gz'
return t.format(str(version)) return t.format(str(version))
def setup_environment(self, spack_env, run_env): # override default implementation which returns static lib
@property
def libs(self):
return find_libraries(
['libelpa'], root=self.prefix, shared=True, recurse=True
)
build_directory = 'spack-build'
def setup_environment(self, spack_env, run_env):
# TODO: set optimum flags for platform+compiler combo, see
# https://github.com/hfp/xconfigure/tree/master/elpa
spec = self.spec spec = self.spec
spack_env.set('CC', spec['mpi'].mpicc) spack_env.set('CC', spec['mpi'].mpicc)
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
import os import os
from glob import glob
class Espresso(Package): class Espresso(Package):
...@@ -36,6 +37,12 @@ class Espresso(Package): ...@@ -36,6 +37,12 @@ class Espresso(Package):
homepage = 'http://quantum-espresso.org' homepage = 'http://quantum-espresso.org'
url = 'http://www.qe-forge.org/gf/download/frsrelease/204/912/espresso-5.3.0.tar.gz' url = 'http://www.qe-forge.org/gf/download/frsrelease/204/912/espresso-5.3.0.tar.gz'
version(
'6.1.0',
'db398edcad76e085f8c8a3f6ecb7aaab',
url='http://www.qe-forge.org/gf/download/frsrelease/240/1075/qe-6.1.tar.gz'
)
version( version(
'5.4.0', '5.4.0',
'8bb78181b39bd084ae5cb7a512c1cfe7', '8bb78181b39bd084ae5cb7a512c1cfe7',
...@@ -56,9 +63,10 @@ class Espresso(Package): ...@@ -56,9 +63,10 @@ class Espresso(Package):
depends_on('fftw+mpi', when='+mpi') depends_on('fftw+mpi', when='+mpi')
# TODO : + mpi needed to avoid false dependencies installation # TODO : + mpi needed to avoid false dependencies installation
depends_on('scalapack', when='+scalapack+mpi') depends_on('scalapack', when='+scalapack+mpi')
depends_on('elpa@2016.11.001.pre', when='@6.1.0+elpa')
# Spurious problems running in parallel the Makefile # Spurious problems running in parallel the Makefile
# generated by qe configure # generated by the configure
parallel = False parallel = False
def check_variants(self, spec): def check_variants(self, spec):
...@@ -69,10 +77,12 @@ def check_variants(self, spec): ...@@ -69,10 +77,12 @@ def check_variants(self, spec):
raise RuntimeError(error.format(variant='elpa')) raise RuntimeError(error.format(variant='elpa'))
def install(self, spec, prefix): def install(self, spec, prefix):
from glob import glob
self.check_variants(spec) self.check_variants(spec)
options = ['-prefix=%s' % prefix.bin] options = [
'-prefix=%s' % (prefix.bin if spec.satisfies('@:5.4.0') else
prefix)
]
if '+mpi' in spec: if '+mpi' in spec:
options.append('--enable-parallel') options.append('--enable-parallel')
...@@ -84,7 +94,18 @@ def install(self, spec, prefix): ...@@ -84,7 +94,18 @@ def install(self, spec, prefix):
options.append('--with-scalapack=yes') options.append('--with-scalapack=yes')
if '+elpa' in spec: if '+elpa' in spec:
options.append('--with-elpa=yes') if spec.satisfies('@:5.4.0'):
options.append('--with-elpa=yes')
else:
options.extend([
'--with-elpa-include={0}'.format(
join_path(spec['elpa'].prefix,
'include',
'elpa-{0}'.format(str(spec['elpa'].version)),
'modules')
),
'--with-elpa-lib={0}'.format(spec['elpa'].libs.joined())
])
# Add a list of directories to search # Add a list of directories to search
search_list = [] search_list = []
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment