Skip to content

Commit 3630dfd

Browse files
authored
Merge pull request #73941 from edymtt/edymtt/target-sdks-can-be-empty-6.0
6.0 CMake: do not assume target SDKs are provided when evaluting `NOT`
2 parents d69309e + 312cce0 commit 3630dfd

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

stdlib/cmake/modules/AddSwiftStdlib.cmake

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1934,11 +1934,14 @@ function(add_swift_target_library name)
19341934
list_replace(SWIFTLIB_TARGET_SDKS ALL_APPLE_PLATFORMS "${SWIFT_DARWIN_PLATFORMS}")
19351935

19361936
# Support adding a "NOT" on the front to mean all SDKs except the following
1937-
list(GET SWIFTLIB_TARGET_SDKS 0 first_sdk)
1938-
if("${first_sdk}" STREQUAL "NOT")
1939-
list(REMOVE_AT SWIFTLIB_TARGET_SDKS 0)
1940-
list_subtract("${SWIFT_SDKS}" "${SWIFTLIB_TARGET_SDKS}"
1941-
"SWIFTLIB_TARGET_SDKS")
1937+
list(LENGTH SWIFTLIB_TARGET_SDKS number_of_target_sdks)
1938+
if(number_of_target_sdks GREATER_EQUAL "1")
1939+
list(GET SWIFTLIB_TARGET_SDKS 0 first_sdk)
1940+
if("${first_sdk}" STREQUAL "NOT")
1941+
list(REMOVE_AT SWIFTLIB_TARGET_SDKS 0)
1942+
list_subtract("${SWIFT_SDKS}" "${SWIFTLIB_TARGET_SDKS}"
1943+
"SWIFTLIB_TARGET_SDKS")
1944+
endif()
19421945
endif()
19431946

19441947
list_intersect(
@@ -2974,11 +2977,14 @@ function(add_swift_target_executable name)
29742977
list_replace(SWIFTEXE_TARGET_TARGET_SDKS ALL_APPLE_PLATFORMS "${SWIFT_DARWIN_PLATFORMS}")
29752978

29762979
# Support adding a "NOT" on the front to mean all SDKs except the following
2977-
list(GET SWIFTEXE_TARGET_TARGET_SDKS 0 first_sdk)
2978-
if("${first_sdk}" STREQUAL "NOT")
2979-
list(REMOVE_AT SWIFTEXE_TARGET_TARGET_SDKS 0)
2980-
list_subtract("${SWIFT_SDKS}" "${SWIFTEXE_TARGET_TARGET_SDKS}"
2981-
"SWIFTEXE_TARGET_TARGET_SDKS")
2980+
list(LENGTH SWIFTEXE_TARGET_TARGET_SDKS number_of_target_sdks)
2981+
if(number_of_target_sdks GREATER_EQUAL "1")
2982+
list(GET SWIFTEXE_TARGET_TARGET_SDKS 0 first_sdk)
2983+
if("${first_sdk}" STREQUAL "NOT")
2984+
list(REMOVE_AT SWIFTEXE_TARGET_TARGET_SDKS 0)
2985+
list_subtract("${SWIFT_SDKS}" "${SWIFTEXE_TARGET_TARGET_SDKS}"
2986+
"SWIFTEXE_TARGET_TARGET_SDKS")
2987+
endif()
29822988
endif()
29832989

29842990
list_intersect(

0 commit comments

Comments
 (0)