File tree Expand file tree Collapse file tree 2 files changed +45
-0
lines changed
Runtimes/Supplemental/cmake/modules Expand file tree Collapse file tree 2 files changed +45
-0
lines changed Original file line number Diff line number Diff line change
1
+ # Use C++17
2
+ set (${PROJECT_NAME} _MIN_CXX_STANDARD 17 )
3
+ # Unset CMAKE_CXX_STANDARD if it's too low and in the CMakeCache.txt
4
+ if ($CACHE{CMAKE_CXX_STANDARD} AND $CACHE{CMAKE_CXX_STANDARD} LESS ${${PROJECT_NAME}_MIN_CXX_STANDARD} )
5
+ message (WARNING "Resetting cache value for CMAKE_CXX_STANDARD to ${${PROJECT_NAME} _MIN_CXX_STANDARD}" )
6
+ unset (CMAKE_CXX_STANDARD CACHE )
7
+ endif ()
8
+
9
+ # Allow manually specified CMAKE_CXX_STANDARD if it's greater than the minimum
10
+ # required C++ version
11
+ if (DEFINED CMAKE_CXX_STANDARD AND CMAKE_CXX_STANDARD LESS ${${PROJECT_NAME}_MIN_CXX_STANDARD} )
12
+ message (FATAL_ERROR "Requested CMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} which is less than the minimum C++ standard ${${PROJECT_NAME} _MIN_CXX_STANDARD}" )
13
+ endif ()
14
+
15
+ set (CMAKE_CXX_STANDARD ${${PROJECT_NAME}_MIN_CXX_STANDARD} CACHE STRING "C++ standard to conform to" )
16
+ set (CMAKE_CXX_STANDARD_REQUIRED YES )
17
+ set (CMAKE_CXX_EXTENSIONS NO )
Original file line number Diff line number Diff line change
1
+ include (CheckSourceCompiles )
2
+ include (CheckCompilerFlag )
3
+
4
+ check_source_compiles (CXX
5
+ "#if !(__has_attribute(swiftcall) && \
6
+ __has_attribute(swift_context) && \
7
+ __has_attribute(swift_error_result) && \
8
+ __has_attribute(swift_indirect_result))
9
+ #error CXX compiler must support Swift calling conventions
10
+ #endif
11
+ int main(void) { return 0; }"
12
+ HAVE_SWIFTCALL )
13
+
14
+ if (NOT HAVE_SWIFTCALL )
15
+ message (SEND_ERROR "CXX Compiler must support Swift calling conventions" )
16
+ endif ()
17
+
18
+ check_source_compiles (CXX
19
+ "#if !(__has_attribute(swiftasynccall) && \
20
+ __has_attribute(swift_async_context))
21
+ #error CXX compiler must support Swift async calling conventions
22
+ #endif
23
+ int main(void) { return 0; }"
24
+ HAVE_SWIFT_ASYNC_CALL )
25
+
26
+ if (NOT HAVE_SWIFT_ASYNC_CALL )
27
+ message (SEND_ERROR "CXX Compiler must support Swift async calling conventions" )
28
+ endif ()
You can’t perform that action at this time.
0 commit comments