]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: enforce minimum compiler versions for c++20 47543/head
authorCasey Bodley <cbodley@redhat.com>
Wed, 10 Aug 2022 17:59:56 +0000 (13:59 -0400)
committerCasey Bodley <cbodley@redhat.com>
Wed, 10 Aug 2022 17:59:56 +0000 (13:59 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/CMakeLists.txt

index b301c720f42b5a4e7d9afb46462f446354a2e25a..f22ff7b2b9feaf2fd5329c43fa9c5a20724e5edf 100644 (file)
@@ -115,6 +115,9 @@ if(COMPILER_SUPPORTS_REDUNDANT_MOVE)
   add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-Wredundant-move>)
 endif()
 if(CMAKE_CXX_COMPILER_ID STREQUAL GNU)
+  if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11) # require >= gcc-11
+    message(FATAL_ERROR "C++20 support requires a minimum GCC version of 11.")
+  endif()
   if(MINGW)
     # The MINGW headers are missing some "const" qualifiers.
     add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-fpermissive>)
@@ -133,6 +136,9 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL GNU)
     endif()
   endif()
 elseif(CMAKE_CXX_COMPILER_ID STREQUAL Clang)
+  if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12) # require >= clang-12
+    message(FATAL_ERROR "C++20 support requires a minimum Clang version of 12.")
+  endif()
   set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_EXPORTS_C_FLAG}")
   string(APPEND CMAKE_LINKER_FLAGS " -rdynamic -export-dynamic ${CMAKE_EXE_EXPORTS_C_FLAG}")
   string(PREPEND CMAKE_CXX_FLAGS_DEBUG "-g ")