Skip to content

Commit 07edd9c

Browse files
authored
Merge pull request #73939 from edymtt/edymtt/target-sdks-can-be-empy
CMake: do not assume target SDKs are provided when evaluting `NOT`...
2 parents be64be7 + 99a4a0d commit 07edd9c

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
@@ -1935,11 +1935,14 @@ function(add_swift_target_library name)
19351935
list_replace(SWIFTLIB_TARGET_SDKS ALL_APPLE_PLATFORMS "${SWIFT_DARWIN_PLATFORMS}")
19361936

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

19451948
list_intersect(
@@ -2985,11 +2988,14 @@ function(add_swift_target_executable name)
29852988
list_replace(SWIFTEXE_TARGET_TARGET_SDKS ALL_APPLE_PLATFORMS "${SWIFT_DARWIN_PLATFORMS}")
29862989

29872990
# Support adding a "NOT" on the front to mean all SDKs except the following
2988-
list(GET SWIFTEXE_TARGET_TARGET_SDKS 0 first_sdk)
2989-
if("${first_sdk}" STREQUAL "NOT")
2990-
list(REMOVE_AT SWIFTEXE_TARGET_TARGET_SDKS 0)
2991-
list_subtract("${SWIFT_SDKS}" "${SWIFTEXE_TARGET_TARGET_SDKS}"
2992-
"SWIFTEXE_TARGET_TARGET_SDKS")
2991+
list(LENGTH SWIFTEXE_TARGET_TARGET_SDKS number_of_target_sdks)
2992+
if(number_of_target_sdks GREATER_EQUAL "1")
2993+
list(GET SWIFTEXE_TARGET_TARGET_SDKS 0 first_sdk)
2994+
if("${first_sdk}" STREQUAL "NOT")
2995+
list(REMOVE_AT SWIFTEXE_TARGET_TARGET_SDKS 0)
2996+
list_subtract("${SWIFT_SDKS}" "${SWIFTEXE_TARGET_TARGET_SDKS}"
2997+
"SWIFTEXE_TARGET_TARGET_SDKS")
2998+
endif()
29932999
endif()
29943000

29953001
list_intersect(

0 commit comments

Comments
 (0)