mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-21 15:10:19 +00:00
CMake: Check for Swift-aware C++ compiler more robustly
Instead of looking for "AppleClang", we can just check whether the CMAKE_CXX_COMPILER understands swift_attr and swift_name.
This commit is contained in:
parent
f638f84185
commit
e467b38d3d
1 changed files with 9 additions and 8 deletions
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue