From: vsr Date: Mon, 14 Sep 2020 08:33:05 +0000 (+0300) Subject: Add option to choose C++ standard; default value is set to 11 (requries CMake minimal... X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=3c69386a197d7d773d7fa03cced18cb114ee0555;p=tools%2Fconfiguration.git Add option to choose C++ standard; default value is set to 11 (requries CMake minimal version 3.1) --- diff --git a/cmake/SalomeMacros.cmake b/cmake/SalomeMacros.cmake index 33078a9..d24b042 100644 --- a/cmake/SalomeMacros.cmake +++ b/cmake/SalomeMacros.cmake @@ -27,6 +27,7 @@ IF(WIN32) CMAKE_POLICY(SET CMP0020 OLD) # Disable automatic linking to qtmain.lib ENDIF(WIN32) CMAKE_POLICY(SET CMP0053 NEW) # For correct Qt 5 detection procedure +CMAKE_POLICY(SET CMP0057 NEW) # For IF(IN_LIST) operator IF(CMAKE_VERSION VERSION_GREATER_EQUAL 3.12) CMAKE_POLICY(SET CMP0074 NEW) # Use ROOT variables when detecting packages ENDIF() diff --git a/cmake/SalomeSetupPlatform.cmake b/cmake/SalomeSetupPlatform.cmake index abfb734..a5f713a 100644 --- a/cmake/SalomeSetupPlatform.cmake +++ b/cmake/SalomeSetupPlatform.cmake @@ -106,7 +106,16 @@ IF(COMPILER_SUPPORTS_NO_OPERATOR_NAMES) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-operator-names") ENDIF() -SET(CMAKE_CXX_STANDARD 17) +# C++ standard to use; NOTE: extensions are not allowed! +SET(SALOME_CXX_STANDARD 11 CACHE STRING "C++ standard to use") +SET(_supported_standards 11 14 17 20) +IF(NOT ${SALOME_CXX_STANDARD} IN_LIST _supported_standards) + MESSAGE(FATAL_ERROR "Unsupported C++ standard: ${SALOME_CXX_STANDARD}; allowed values: ${_supported_standards}") +ENDIF() +UNSET(_supported_standards) +MESSAGE(STATUS "Setting C++ standard to ${SALOME_CXX_STANDARD}") +SET(CMAKE_CXX_STANDARD ${SALOME_CXX_STANDARD}) +SET(CMAKE_CXX_EXTENSIONS OFF) SET(CMAKE_CXX_STANDARD_REQUIRED ON) # Fight warnings