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)
69
69
endif ()
70
70
71
71
# 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" )
73
87
set (CMAKE_CXX_STANDARD_REQUIRED YES )
74
88
set (CMAKE_CXX_EXTENSIONS NO )
75
89
You can’t perform that action at this time.
0 commit comments