SUNDIALS: add new versions, update hashes, and apply clang fix (#9115)

Added SUNDIALS 3.1.2 and 4.0.0-dev.1 versions and relevant dependencies
(3.1.2 requires CMake 2.8.12). Updated all versions to use sha256 hashes.
Addressed issue specific to clang compiler on macOS.
This commit is contained in:
Cody Balos 2018-08-31 12:14:15 -07:00 committed by scheibelp
parent 3d92b975f3
commit e7df911026

View File

@ -33,18 +33,29 @@ class Sundials(CMakePackage):
homepage = "https://computation.llnl.gov/projects/sundials" homepage = "https://computation.llnl.gov/projects/sundials"
url = "https://computation.llnl.gov/projects/sundials/download/sundials-2.7.0.tar.gz" url = "https://computation.llnl.gov/projects/sundials/download/sundials-2.7.0.tar.gz"
maintainers = ['cswoodward', 'gardner48'] maintainers = ['cswoodward', 'gardner48', 'balos1']
# ========================================================================== # ==========================================================================
# Versions # Versions
# ========================================================================== # ==========================================================================
version('4.0.0-dev', '1d4b538721b84ebc91ce7ad92d94beae') version('4.0.0-dev.1',
version('3.1.1', 'e63f4de0be5be97f750b30b0fa11ef34', preferred=True) sha256='6354e1d266b60c23766137b4ffa9bbde8bca97a562ccd94cab756b597ed753c1')
version('3.1.0', '1a84ca41c7f71067e03d519ddbcd9dae') version('4.0.0-dev',
version('3.0.0', '5163a44cedd7398bddda442ba00313b8') sha256='50e526327461aebe463accf6ef56f9c6773df65025f3020b9ce68b83bbf5dd27')
version('2.7.0', 'c304631b9bc82877d7b0e9f4d4fd94d3') version('3.1.2',
version('2.6.2', '3deeb0ede9f514184c6bd83ecab77d95') sha256='a8985bb1e851d90e24260450667b134bc13d71f5c6effc9e1d7183bd874fe116',
preferred=True)
version('3.1.1',
sha256='a24d643d31ed1f31a25b102a1e1759508ce84b1e4739425ad0e18106ab471a24')
version('3.1.0',
sha256='18d52f8f329626f77b99b8bf91e05b7d16b49fde2483d3a0ea55496ce4cdd43a')
version('3.0.0',
sha256='28b8e07eecfdef66e2c0d0ea0cb1b91af6e4e94d71008abfe80c27bf39f63fde')
version('2.7.0',
sha256='d39fcac7175d701398e4eb209f7e92a5b30a78358d4a0c0fcc23db23c11ba104')
version('2.6.2',
sha256='d8ed0151509dd2b0f317b318a4175f8b95a174340fc3080b8c20617da8aa4d2f')
# ========================================================================== # ==========================================================================
# Variants # Variants
@ -166,6 +177,7 @@ class Sundials(CMakePackage):
# Build dependencies # Build dependencies
depends_on('cmake@2.8.1:', type='build') depends_on('cmake@2.8.1:', type='build')
depends_on('cmake@2.8.12:', type='build', when='@3.1.2')
depends_on('cmake@3.0.2:', type='build', when='@4.0.0:') depends_on('cmake@3.0.2:', type='build', when='@4.0.0:')
# MPI related dependencies # MPI related dependencies
@ -218,7 +230,7 @@ def on_off(varstr):
return 'ON' if varstr in self.spec else 'OFF' return 'ON' if varstr in self.spec else 'OFF'
fortran_flag = self.compiler.pic_flag fortran_flag = self.compiler.pic_flag
if spec.satisfies('%clang platform=darwin'): if (spec.satisfies('%clang platform=darwin')) and ('+fcmix' in spec):
f77 = Executable(self.compiler.f77) f77 = Executable(self.compiler.f77)
libgfortran = LibraryList(f77('--print-file-name', libgfortran = LibraryList(f77('--print-file-name',
'libgfortran.a', output=str)) 'libgfortran.a', output=str))
@ -377,6 +389,8 @@ def filter_compilers(self):
Spack's generic cc and f77. We want them to be bound to Spack's generic cc and f77. We want them to be bound to
whatever compiler they were built with.""" whatever compiler they were built with."""
spec = self.spec
kwargs = {'ignore_absent': True, 'backup': False, 'string': True} kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
dirname = os.path.join(self.prefix, 'examples') dirname = os.path.join(self.prefix, 'examples')
@ -472,10 +486,12 @@ def filter_compilers(self):
filter_file(r'^CPP\s*=.*', self.compiler.cc, filter_file(r'^CPP\s*=.*', self.compiler.cc,
os.path.join(dirname, filename), **kwargs) os.path.join(dirname, filename), **kwargs)
if ('+fcmix' in spec) and ('+examples-f77' in spec):
for filename in f77_files: for filename in f77_files:
filter_file(os.environ['F77'], self.compiler.f77, filter_file(os.environ['F77'], self.compiler.f77,
os.path.join(dirname, filename), **kwargs) os.path.join(dirname, filename), **kwargs)
if ('+fcmix' in spec) and ('+examples-f90' in spec):
for filename in f90_files: for filename in f90_files:
filter_file(os.environ['FC'], self.compiler.fc, filter_file(os.environ['FC'], self.compiler.fc,
os.path.join(dirname, filename), **kwargs) os.path.join(dirname, filename), **kwargs)