From bb8ca24904ae149e03411ca2b7223b7ddb02ebb8 Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 14 Jul 2020 10:28:00 +0200 Subject: [PATCH] CMake: make sure that C++14, C++17 or C++20 can also be set for MSVC --- .../CompilerChecksAndSetups.cmake | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/cMake/FreeCAD_Helpers/CompilerChecksAndSetups.cmake b/cMake/FreeCAD_Helpers/CompilerChecksAndSetups.cmake index 9a1627592e..fd236ffbaa 100644 --- a/cMake/FreeCAD_Helpers/CompilerChecksAndSetups.cmake +++ b/cMake/FreeCAD_Helpers/CompilerChecksAndSetups.cmake @@ -45,6 +45,17 @@ macro(CompilerChecksAndSetups) endif() endif(FREECAD_VERSION VERSION_GREATER 0.16) + # Escape the two plus chars as otherwise cmake complains about invalid regex + if(${BUILD_ENABLE_CXX_STD} MATCHES "C\\+\\+20") + set(CMAKE_CXX_STANDARD 20) + elseif(${BUILD_ENABLE_CXX_STD} MATCHES "C\\+\\+17") + set(CMAKE_CXX_STANDARD 17) + elseif(${BUILD_ENABLE_CXX_STD} MATCHES "C\\+\\+14") + set(CMAKE_CXX_STANDARD 14) + elseif (${BUILD_ENABLE_CXX_STD} MATCHES "C\\+\\+11") + set(CMAKE_CXX_STANDARD 11) + endif() + # Log the compiler and version message(STATUS "Compiler: ${CMAKE_CXX_COMPILER_ID}, version: ${CMAKE_CXX_COMPILER_VERSION}") @@ -53,17 +64,6 @@ macro(CompilerChecksAndSetups) configure_file(${CMAKE_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) add_definitions(-DHAVE_CONFIG_H) - # Escape the two plus chars as otherwise cmake complains about invalid regex - if(${BUILD_ENABLE_CXX_STD} MATCHES "C\\+\\+20") - set(CMAKE_CXX_STANDARD 20) - elseif(${BUILD_ENABLE_CXX_STD} MATCHES "C\\+\\+17") - set(CMAKE_CXX_STANDARD 17) - elseif(${BUILD_ENABLE_CXX_STD} MATCHES "C\\+\\+14") - set(CMAKE_CXX_STANDARD 14) - elseif (${BUILD_ENABLE_CXX_STD} MATCHES "C\\+\\+11") - set(CMAKE_CXX_STANDARD 11) - endif() - # For now only set pedantic option for clang if(CMAKE_COMPILER_IS_CLANGXX) set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wpedantic -Wno-write-strings ${CMAKE_CXX_FLAGS}")