Skip to content

Commit 3af025a

Browse files
committed
Add modules needed by Distributed
1 parent b5a31e3 commit 3af025a

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
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)
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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()

0 commit comments

Comments
 (0)