summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorWouter Deconinck <wdconinc@gmail.com>2023-09-05 10:09:22 -0500
committerGitHub <noreply@github.com>2023-09-05 17:09:22 +0200
commitcf031e83f0149cd2c43d04f877dc26cc9d9e7894 (patch)
treec8aa53308be05c7b4fc3d73da55b825e69ca53f9 /lib
parentf709518916ffe11588cffa3a5821c1e49e94b8d2 (diff)
downloadspack-cf031e83f0149cd2c43d04f877dc26cc9d9e7894.tar.gz
spack-cf031e83f0149cd2c43d04f877dc26cc9d9e7894.tar.bz2
spack-cf031e83f0149cd2c43d04f877dc26cc9d9e7894.tar.xz
spack-cf031e83f0149cd2c43d04f877dc26cc9d9e7894.zip
compilers/gcc.py: support cxx{20,23}_flag (#39777)
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/compilers/gcc.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/spack/spack/compilers/gcc.py b/lib/spack/spack/compilers/gcc.py
index ae8d5aa97e..adef8a8277 100644
--- a/lib/spack/spack/compilers/gcc.py
+++ b/lib/spack/spack/compilers/gcc.py
@@ -100,6 +100,28 @@ class Gcc(spack.compiler.Compiler):
return "-std=c++17"
@property
+ def cxx20_flag(self):
+ if self.real_version < Version("8.0"):
+ raise spack.compiler.UnsupportedCompilerFlag(
+ self, "the C++20 standard", "cxx20_flag", "< 8.0"
+ )
+ elif self.real_version < Version("11.0"):
+ return "-std=c++2a"
+ else:
+ return "-std=c++20"
+
+ @property
+ def cxx23_flag(self):
+ if self.real_version < Version("11.0"):
+ raise spack.compiler.UnsupportedCompilerFlag(
+ self, "the C++23 standard", "cxx23_flag", "< 11.0"
+ )
+ elif self.real_version < Version("14.0"):
+ return "-std=c++2b"
+ else:
+ return "-std=c++23"
+
+ @property
def c99_flag(self):
if self.real_version < Version("4.5"):
raise spack.compiler.UnsupportedCompilerFlag(