File tree Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -69,7 +69,21 @@ if(SWIFT_ASM_AVAILABLE)
6969endif ()
7070
7171# Use C++17.
72- set (CMAKE_CXX_STANDARD 17 CACHE STRING "C++ standard to conform to" )
72+ set (SWIFT_MIN_CXX_STANDARD 17)
73+
74+ # Unset CMAKE_CXX_STANDARD if it's too low and in the CMakeCache.txt
75+ if ($CACHE{CMAKE_CXX_STANDARD} AND $CACHE{CMAKE_CXX_STANDARD} LESS ${SWIFT_MIN_CXX_STANDARD} )
76+ message (WARNING "Resetting cache value for CMAKE_CXX_STANDARD to ${SWIFT_MIN_CXX_STANDARD} " )
77+ unset (CMAKE_CXX_STANDARD CACHE )
78+ endif ()
79+
80+ # Allow manually specified CMAKE_CXX_STANDARD if it's greater than the minimum
81+ # required C++ version
82+ if (DEFINED CMAKE_CXX_STANDARD AND CMAKE_CXX_STANDARD LESS ${SWIFT_MIN_CXX_STANDARD} )
83+ message (FATAL_ERROR "Requested CMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} which is less than the minimum C++ standard ${SWIFT_MIN_CXX_STANDARD} " )
84+ endif ()
85+
86+ set (CMAKE_CXX_STANDARD ${SWIFT_MIN_CXX_STANDARD} CACHE STRING "C++ standard to conform to" )
7387set (CMAKE_CXX_STANDARD_REQUIRED YES )
7488set (CMAKE_CXX_EXTENSIONS NO )
7589
You can’t perform that action at this time.
0 commit comments