mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-02 15:46:33 +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
fbe9395928
commit
4cb19c65b4
Notes:
github-actions[bot]
2024-11-21 19:18:36 +00:00
Author: https://github.com/ADKaster
Commit: 4cb19c65b4
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2462
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…
Add table
Add a link
Reference in a new issue