From 395a61fc9ab1fe15f5fccb488f4b697ffa6dbae0 Mon Sep 17 00:00:00 2001 From: Maarten Bent Date: Sun, 28 Jan 2024 14:19:57 +0100 Subject: [PATCH] CMake: Use user-provided CMAKE_CXX_STANDARD wxBUILD_CXX_STANDARD is initialized with CMAKE_CXX_STANDARD. But if the user changes the value of CMAKE_CXX_STANDARD, it would keep using the old wxBUILD_CXX_STANDARD value. --- build/cmake/init.cmake | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake index be8fdd5d04..47376caf59 100644 --- a/build/cmake/init.cmake +++ b/build/cmake/init.cmake @@ -34,15 +34,18 @@ function(checkCompilerDefaults) wxHAVE_CXX17) endfunction() -if(DEFINED wxBUILD_CXX_STANDARD AND NOT wxBUILD_CXX_STANDARD STREQUAL COMPILER_DEFAULT) +if(DEFINED CMAKE_CXX_STANDARD) + # User has explicitly set a CMAKE_CXX_STANDARD. +elseif(DEFINED wxBUILD_CXX_STANDARD AND NOT wxBUILD_CXX_STANDARD STREQUAL COMPILER_DEFAULT) + # Standard is set using wxBUILD_CXX_STANDARD. set(CMAKE_CXX_STANDARD ${wxBUILD_CXX_STANDARD}) set(CMAKE_CXX_STANDARD_REQUIRED ON) else() - # If the standard is not set explicitly, check whether we can use C++11 - # without any special options. + # CMAKE_CXX_STANDARD not defined. checkCompilerDefaults() if(NOT wxHAVE_CXX11) - # If not, request it explicitly and let CMake check if it's supported. + # If the standard is not set explicitly, and the default compiler settings + # do not support c++11, request it explicitly. set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) endif()