mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
As of CMake 3.25, there are now global variables `LINUX=1`, `ANDROID=1`,
etc. These conflict with expressions that used these names as unquoted
strings in positions where CMake accepts 'variable|string', for example:
- `if(sdk STREQUAL LINUX)` would fail, because `LINUX` is now defined and
expands to 1, where it would previously coerce to a string.
- `if(${sdk} STREQUAL "LINUX")` would fail if `sdk=LINUX`, because the
left-hand side expands twice.
In this patch, I looked for a number of patterns to fix up, sometimes a
little defensively:
- Quoted right-hand side of `STREQUAL` where I was confident it was
intended to be a string literal.
- Removed manual variable expansion on left-hand side of `STREQUAL`,
`MATCHES` and `IN_LIST` where I was confident it was unintended.
Fixes #65028.
21 lines
578 B
CMake
21 lines
578 B
CMake
if(("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "${SWIFT_PRIMARY_VARIANT_SDK}") AND
|
|
("${SWIFT_HOST_VARIANT_ARCH}" STREQUAL "${SWIFT_PRIMARY_VARIANT_ARCH}"))
|
|
add_swift_unittest(SwiftThreadingTests
|
|
Mutex.cpp
|
|
ConditionVariable.cpp
|
|
Once.cpp
|
|
LinuxUlock.cpp
|
|
Fatal.cpp
|
|
)
|
|
|
|
target_link_libraries(SwiftThreadingTests
|
|
PRIVATE
|
|
swiftThreading${SWIFT_PRIMARY_VARIANT_SUFFIX}
|
|
swiftCore${SWIFT_PRIMARY_VARIANT_SUFFIX}
|
|
)
|
|
|
|
if(SWIFT_HOST_VARIANT STREQUAL "windows")
|
|
target_link_libraries(SwiftThreadingTests PRIVATE Synchronization)
|
|
endif()
|
|
endif()
|