Skip to content
Snippets Groups Projects
Commit e16908b1 authored by Bruno Turcksin's avatar Bruno Turcksin Committed by Todd Gamblin
Browse files

Add 64 bit variant to dealii. (#2654)

parent b240fdb2
No related branches found
No related tags found
No related merge requests found
...@@ -30,7 +30,7 @@ class Dealii(CMakePackage): ...@@ -30,7 +30,7 @@ class Dealii(CMakePackage):
"""C++ software library providing well-documented tools to build finite """C++ software library providing well-documented tools to build finite
element codes for a broad variety of PDEs.""" element codes for a broad variety of PDEs."""
homepage = "https://www.dealii.org" homepage = "https://www.dealii.org"
url = "https://github.com/dealii/dealii/releases/download/v8.4.1/dealii-8.4.1.tar.gz" url = "https://github.com/dealii/dealii/releases/download/v8.4.1/dealii-8.4.1.tar.gz"
# Don't add RPATHs to this package for the full build DAG. # Don't add RPATHs to this package for the full build DAG.
# only add for immediate deps. # only add for immediate deps.
...@@ -66,6 +66,8 @@ class Dealii(CMakePackage): ...@@ -66,6 +66,8 @@ class Dealii(CMakePackage):
description='Compile with Trilinos (only with MPI)') description='Compile with Trilinos (only with MPI)')
variant('python', default=True, variant('python', default=True,
description='Compile with Python bindings') description='Compile with Python bindings')
variant('64bit', default=False,
description='Compile with 64 bit indices support')
# required dependencies, light version # required dependencies, light version
depends_on("blas") depends_on("blas")
...@@ -107,11 +109,11 @@ class Dealii(CMakePackage): ...@@ -107,11 +109,11 @@ class Dealii(CMakePackage):
depends_on("netcdf-cxx", when='+netcdf+mpi') depends_on("netcdf-cxx", when='+netcdf+mpi')
depends_on("oce", when='+oce') depends_on("oce", when='+oce')
depends_on("p4est", when='+p4est+mpi') depends_on("p4est", when='+p4est+mpi')
depends_on("petsc+mpi", when='@8.4.2:+petsc+mpi') depends_on("petsc+mpi", when='@8.4.2:+petsc+mpi~64bit')
depends_on('python', when='@8.5.0:+python') depends_on('python', when='@8.5.0:+python')
depends_on("slepc", when='@8.4.2:+slepc+petsc+mpi') depends_on("slepc", when='@8.4.2:+slepc+petsc+mpi~64bit')
depends_on("petsc@:3.6.4+mpi", when='@:8.4.1+petsc+mpi') depends_on("petsc@:3.6.4+mpi", when='@:8.4.1+petsc+mpi~64bit')
depends_on("slepc@:3.6.3", when='@:8.4.1+slepc+petsc+mpi') depends_on("slepc@:3.6.3", when='@:8.4.1+slepc+petsc+mpi~64bit')
depends_on("trilinos", when='+trilinos+mpi') depends_on("trilinos", when='+trilinos+mpi')
def build_type(self): def build_type(self):
...@@ -161,8 +163,8 @@ def cmake_args(self): ...@@ -161,8 +163,8 @@ def cmake_args(self):
if '+mpi' in spec: if '+mpi' in spec:
options.extend([ options.extend([
'-DDEAL_II_WITH_MPI:BOOL=ON', '-DDEAL_II_WITH_MPI:BOOL=ON',
'-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc, '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
'-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx, '-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
'-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc, '-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
]) ])
else: else:
...@@ -170,7 +172,7 @@ def cmake_args(self): ...@@ -170,7 +172,7 @@ def cmake_args(self):
'-DDEAL_II_WITH_MPI:BOOL=OFF', '-DDEAL_II_WITH_MPI:BOOL=OFF',
]) ])
# Optional dependencies for which librariy names are the same as CMake # Optional dependencies for which library names are the same as CMake
# variables: # variables:
for library in ( for library in (
'gsl', 'hdf5', 'p4est', 'petsc', 'slepc', 'trilinos', 'metis'): 'gsl', 'hdf5', 'p4est', 'petsc', 'slepc', 'trilinos', 'metis'):
...@@ -241,6 +243,11 @@ def cmake_args(self): ...@@ -241,6 +243,11 @@ def cmake_args(self):
'-DDEAL_II_WITH_OPENCASCADE=OFF' '-DDEAL_II_WITH_OPENCASCADE=OFF'
]) ])
# 64 bit indices
options.extend([
'-DDEAL_II_WITH_64BIT_INDICES=%s' % ('+64bit' in spec)
])
return options return options
def setup_environment(self, spack_env, env): def setup_environment(self, spack_env, env):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment