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()
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