From d04f95847832a71647610fcb9cfcef6c15b1b9e1 Mon Sep 17 00:00:00 2001 From: Alex Dutka <97711898+dutkalex@users.noreply.github.com> Date: Fri, 25 Oct 2024 21:17:51 +0200 Subject: [PATCH] Update CMakeLists.txt Enable CMAKE_{C,CXX}_STANDARD to be set on the command line, while still requiring C11 and C++17 --- CMakeLists.txt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d04c785c09..c94ceaca0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,11 +46,19 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) "Debug" "Release" "RelWithDebInfo") endif() -set( CMAKE_C_STANDARD 11 ) +if( NOT DEFINED CMAKE_C_STANDARD ) + set( CMAKE_C_STANDARD 11 ) +elseif( CMAKE_C_STANDARD LESS 11 ) + message( FATAL_ERROR "The CMAKE_C_STANDARD variable has been set to ${CMAKE_C_STANDARD}, but t8code requires C11" ) +endif() set( CMAKE_C_STANDARD_REQUIRED ON ) set( CMAKE_C_EXTENSIONS OFF ) -set( CMAKE_CXX_STANDARD 17 ) +if( NOT DEFINED CMAKE_CXX_STANDARD ) + set( CMAKE_CXX_STANDARD 17 ) +elseif( CMAKE_CXX_STANDARD LESS 17 ) + message( FATAL_ERROR "The CMAKE_CXX_STANDARD variable has been set to ${CMAKE_CXX_STANDARD}, but t8code requires C++17" ) +endif() set( CMAKE_CXX_STANDARD_REQUIRED ON ) set( CMAKE_CXX_EXTENSIONS OFF )