From d6b0cf75ed79ace3154de11ff3ad24af4e69f773 Mon Sep 17 00:00:00 2001 From: Mathias Anselmann Date: Tue, 3 Mar 2020 18:26:20 +0100 Subject: cherry-picking global ordinal type variant from https://github.com/spack/spack/pull/14215 and setting dealii to GO int, to make it compile again (#15288) Co-authored-by: Andrey Prokopenko --- var/spack/repos/builtin/packages/dealii/package.py | 1 + var/spack/repos/builtin/packages/trilinos/package.py | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py index 797931052e..1b9e02c044 100644 --- a/var/spack/repos/builtin/packages/dealii/package.py +++ b/var/spack/repos/builtin/packages/dealii/package.py @@ -151,6 +151,7 @@ class Dealii(CMakePackage, CudaPackage): depends_on('slepc@:3.6.3', when='@:8.4.1+slepc+petsc+mpi') depends_on('slepc~arpack', when='+slepc+petsc+mpi+int64') depends_on('sundials@:3~pthread', when='@9.0:+sundials') + depends_on('trilinos gotype=int', when='+trilinos') # Both Trilinos and SymEngine bundle the Teuchos RCP library. # This leads to conflicts between macros defined in the included # headers when they are not compiled in the same mode. diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index ba5ce27562..66e281f28b 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -66,6 +66,10 @@ class Trilinos(CMakePackage): description='Enable explicit template instantiation (ETI)') variant('float', default=False, description='Enable single precision (float) numbers in Trilinos') + variant('gotype', default='long', + values=('int', 'long', 'long_long'), + multi=False, + description='global ordinal type for Tpetra') variant('fortran', default=True, description='Compile with Fortran support') variant('openmp', default=False, @@ -744,10 +748,15 @@ class Trilinos(CMakePackage): ) if '+explicit_template_instantiation' in spec and '+tpetra' in spec: + gotype = spec.variants['gotype'].value options.extend([ '-DTpetra_INST_DOUBLE:BOOL=ON', - '-DTpetra_INST_INT_LONG:BOOL=ON', - '-DTpetra_INST_INT_LONG_LONG:BOOL=ON', + '-DTpetra_INST_INT_INT:BOOL=%s' % ( + 'ON' if gotype == 'int' else 'OFF'), + '-DTpetra_INST_INT_LONG:BOOL=%s' % ( + 'ON' if gotype == 'long' else 'OFF'), + '-DTpetra_INST_INT_LONG_LONG:BOOL=%s' % ( + 'ON' if gotype == 'long_long' else 'OFF'), '-DTpetra_INST_COMPLEX_DOUBLE=%s' % complex_s, '-DTpetra_INST_COMPLEX_FLOAT=%s' % complex_float_s, '-DTpetra_INST_FLOAT=%s' % float_s, -- cgit v1.2.3-60-g2f50