summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorPaul Kuberry <pakuber@sandia.gov>2022-01-31 00:41:21 -0700
committerGitHub <noreply@github.com>2022-01-31 00:41:21 -0700
commitfff9a29401a7ac37c2d0f04fb2a144dbdea6a47d (patch)
tree12b2a9486a781c7234ba1c67266df43601455bc5 /var
parent1679274ac2c959101ed79495e289e04fbc54a841 (diff)
downloadspack-fff9a29401a7ac37c2d0f04fb2a144dbdea6a47d.tar.gz
spack-fff9a29401a7ac37c2d0f04fb2a144dbdea6a47d.tar.bz2
spack-fff9a29401a7ac37c2d0f04fb2a144dbdea6a47d.tar.xz
spack-fff9a29401a7ac37c2d0f04fb2a144dbdea6a47d.zip
trilinos: Fix cxxstd effects for Trilinos versions <13 (#28663)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/trilinos/package.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py
index f15c339424..9e990c6b49 100644
--- a/var/spack/repos/builtin/packages/trilinos/package.py
+++ b/var/spack/repos/builtin/packages/trilinos/package.py
@@ -260,7 +260,7 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage):
msg='Cannot build Trilinos with STK as a shared library on Darwin.'
)
conflicts('+adios2', when='@:12.14.1')
- conflicts('cxxstd=11', when='@master:')
+ conflicts('cxxstd=11', when='@13.2:')
conflicts('cxxstd=17', when='@:12')
conflicts('cxxstd=11', when='+wrapper ^cuda@6.5.14')
conflicts('cxxstd=14', when='+wrapper ^cuda@6.5.14:8.0.61')
@@ -456,7 +456,6 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage):
options.extend([
define('Trilinos_VERBOSE_CONFIGURE', False),
define_from_variant('BUILD_SHARED_LIBS', 'shared'),
- define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'),
define_trilinos_enable('ALL_OPTIONAL_PACKAGES', False),
define_trilinos_enable('ALL_PACKAGES', False),
define_trilinos_enable('CXX11', True),
@@ -470,6 +469,18 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage):
'explicit_template_instantiation')
])
+ if spec.version >= Version('13'):
+ options.append(define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'))
+ else:
+ # Prior to version 13, Trilinos would erroneously inject
+ # '-std=c++11' regardless of CMAKE_CXX_STANDARD value
+ options.append(define(
+ 'Trilinos_CXX11_FLAGS',
+ self.compiler.cxx14_flag
+ if spec.variants['cxxstd'].value == '14'
+ else self.compiler.cxx11_flag
+ ))
+
# ################## Trilinos Packages #####################
options.extend([
@@ -524,10 +535,6 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage):
define_from_variant('Amesos2_ENABLE_LAPACK', 'amesos2'),
])
- if spec.version < Version('13'):
- # Suppress TriBITS flags in favor of CMake's built-in flags
- options.append(define('Trilinos_CXX11_FLAGS', ' '))
-
if '+dtk' in spec:
options.extend([
define('Trilinos_EXTRA_REPOSITORIES', 'DataTransferKit'),