This commit is contained in:
Andrew Kaster 2024-11-20 16:09:04 -05:00 committed by GitHub
commit 061d36d603
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,16 +1,17 @@
enable_language(Swift)
if (CMAKE_Swift_COMPILER_VERSION VERSION_LESS 6.0)
message(FATAL_ERROR
"Swift 6.0 or newer is required to parse C++ headers in C++23 mode"
)
message(FATAL_ERROR "Swift 6.0 or newer is required to parse C++ headers in C++23 mode")
endif()
# FIXME: How to verify this on non-Apple?
if (APPLE AND NOT CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
message(FATAL_ERROR
"Swift files must use Clang that was bundled with swiftc"
)
# Check for a Swift-aware clang
include(CheckCXXSourceCompiles)
check_cxx_source_compiles([=[
struct __attribute__((swift_name("CxxS"))) __attribute__((swift_attr("~Copyable"))) S { int& x; };
int main() {}
]=] CXX_COMPILER_SUPPORTS_SWIFT_ATTRS)
if (NOT CXX_COMPILER_SUPPORTS_SWIFT_ATTRS)
message(FATAL_ERROR "A Swift-aware C++ compiler is required to build with Swift interop enabled")
endif()
include(${CMAKE_CURRENT_LIST_DIR}/InitializeSwift.cmake)