summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorMikael Simberg <simberg@cscs.ch>2021-09-13 10:43:20 +0200
committerGitHub <noreply@github.com>2021-09-13 10:43:20 +0200
commit819cd41ee465105f94641bb02f2e90aae1976c8c (patch)
treea3489bbf9d896f8903886748ff3c3b59b253ed04 /var
parentc0069210e200b72b25619d02d1644732210651e9 (diff)
downloadspack-819cd41ee465105f94641bb02f2e90aae1976c8c.tar.gz
spack-819cd41ee465105f94641bb02f2e90aae1976c8c.tar.bz2
spack-819cd41ee465105f94641bb02f2e90aae1976c8c.tar.xz
spack-819cd41ee465105f94641bb02f2e90aae1976c8c.zip
hpx, kokkos: add consistent variants for C++ std (#25535)
* Add cuda_constexpr variant to Kokkos package * Don't require nvcc_wrapper in Kokkos package when using Cray compiler
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/hpx/package.py2
-rw-r--r--var/spack/repos/builtin/packages/kokkos/package.py15
2 files changed, 13 insertions, 4 deletions
diff --git a/var/spack/repos/builtin/packages/hpx/package.py b/var/spack/repos/builtin/packages/hpx/package.py
index 8643f735f6..1821d21b6e 100644
--- a/var/spack/repos/builtin/packages/hpx/package.py
+++ b/var/spack/repos/builtin/packages/hpx/package.py
@@ -35,7 +35,7 @@ class Hpx(CMakePackage, CudaPackage):
variant('cxxstd',
default='17',
- values=('11', '14', '17'),
+ values=('11', '14', '17', '20'),
description='Use the specified C++ standard when building.')
variant(
diff --git a/var/spack/repos/builtin/packages/kokkos/package.py b/var/spack/repos/builtin/packages/kokkos/package.py
index 27ce2ad5d8..81ad9849b1 100644
--- a/var/spack/repos/builtin/packages/kokkos/package.py
+++ b/var/spack/repos/builtin/packages/kokkos/package.py
@@ -17,7 +17,7 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage):
test_requires_compiler = True
- maintainers = ['jjwilke', 'jciesko']
+ maintainers = ['DavidPoliakoff', 'jciesko']
version('master', branch='master')
version('develop', branch='develop')
@@ -53,6 +53,8 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage):
'Aggressively vectorize loops'],
'compiler_warnings': [False,
'Print all compiler warnings'],
+ 'cuda_constexpr': [False,
+ 'Activate experimental constexpr features'],
'cuda_lambda': [False,
'Activate experimental lambda features'],
'cuda_ldg_intrinsic': [False,
@@ -193,13 +195,18 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage):
depends_on("kokkos-nvcc-wrapper@master", when="@master+wrapper")
conflicts("+wrapper", when="~cuda")
- variant("std", default="14", values=["11", "14", "17", "20"], multi=False)
+ stds = ["11", "14", "17", "20"]
+ variant("std", default="14", values=stds, multi=False)
variant("pic", default=False, description="Build position independent code")
# nvcc does not currently work with C++17 or C++20
conflicts("+cuda", when="std=17 ^cuda@:10.99.99")
conflicts("+cuda", when="std=20")
+ # HPX should use the same C++ standard
+ for std in stds:
+ depends_on('hpx cxxstd={0}'.format(std), when='+hpx std={0}'.format(std))
+
variant('shared', default=True, description='Build shared libraries')
def append_args(self, cmake_prefix, cmake_options, spack_options):
@@ -229,7 +236,9 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage):
def cmake_args(self):
spec = self.spec
- if spec.satisfies('~wrapper+cuda') and not spec.satisfies('%clang'):
+ if spec.satisfies("~wrapper+cuda") and not (
+ spec.satisfies("%clang") or spec.satisfies("%cce")
+ ):
raise InstallError("Kokkos requires +wrapper when using +cuda"
"without clang")