Skip to content

Commit ad9409b

Browse files
[static-stdlib] NFC: Generalize the static-executable-args.lnk file generation
This patch makes the build system to copy the lnk files for each stdlib targets if needed instead of only for the Linux target. This is the take 2 of the patch. The first one was reverted in 7aa4a8d
1 parent b395c72 commit ad9409b

File tree

1 file changed

+29
-21
lines changed

1 file changed

+29
-21
lines changed

stdlib/public/runtime/CMakeLists.txt

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -102,30 +102,38 @@ set(swift_runtime_library_compile_flags ${swift_runtime_compile_flags})
102102
list(APPEND swift_runtime_library_compile_flags -DswiftCore_EXPORTS)
103103
list(APPEND swift_runtime_library_compile_flags -I${SWIFT_SOURCE_DIR}/stdlib/include/llvm/Support -I${SWIFT_SOURCE_DIR}/include)
104104

105-
set(sdk "${SWIFT_HOST_VARIANT_SDK}")
106-
if(SWIFT_BUILD_STATIC_STDLIB AND "${sdk}" STREQUAL "LINUX")
105+
if(SWIFT_BUILD_STATIC_STDLIB)
107106
set(static_binary_lnk_file_list)
108-
string(TOLOWER "${sdk}" lowercase_sdk)
109-
set(static_binary_lnk_src "${SWIFT_SOURCE_DIR}/stdlib/public/Resources/${lowercase_sdk}/static-executable-args.lnk")
110107

111-
# Generate the static-executable-args.lnk file used for ELF systems (eg linux)
112-
set(linkfile "${lowercase_sdk}/static-executable-args.lnk")
113-
add_custom_command_target(swift_static_binary_${sdk}_args
114-
COMMAND
115-
"${CMAKE_COMMAND}" -E copy
116-
"${static_binary_lnk_src}"
117-
"${SWIFTSTATICLIB_DIR}/${linkfile}"
118-
OUTPUT
119-
"${SWIFTSTATICLIB_DIR}/${linkfile}"
120-
DEPENDS
121-
"${static_binary_lnk_src}")
108+
foreach(sdk ${SWIFT_SDKS})
109+
if(NOT "${sdk}" STREQUAL "LINUX")
110+
continue()
111+
endif()
112+
113+
string(TOLOWER "${sdk}" lowercase_sdk)
114+
set(static_binary_lnk_src "${SWIFT_SOURCE_DIR}/stdlib/public/Resources/${lowercase_sdk}/static-executable-args.lnk")
115+
116+
# Generate the static-executable-args.lnk file used for ELF systems (eg linux)
117+
set(linkfile "${lowercase_sdk}/static-executable-args.lnk")
118+
add_custom_command_target(swift_static_binary_${sdk}_args
119+
COMMAND
120+
"${CMAKE_COMMAND}" -E copy
121+
"${static_binary_lnk_src}"
122+
"${SWIFTSTATICLIB_DIR}/${linkfile}"
123+
OUTPUT
124+
"${SWIFTSTATICLIB_DIR}/${linkfile}"
125+
DEPENDS
126+
"${static_binary_lnk_src}")
122127

123-
list(APPEND static_binary_lnk_file_list ${swift_static_binary_${sdk}_args})
124-
swift_install_in_component(FILES "${SWIFTSTATICLIB_DIR}/${linkfile}"
125-
DESTINATION "lib/swift_static/${lowercase_sdk}"
126-
COMPONENT stdlib)
127-
add_dependencies(stdlib ${static_binary_lnk_file_list})
128-
add_custom_target(static_binary_magic ALL DEPENDS ${static_binary_lnk_file_list})
128+
list(APPEND static_binary_lnk_file_list ${swift_static_binary_${sdk}_args})
129+
swift_install_in_component(FILES "${SWIFTSTATICLIB_DIR}/${linkfile}"
130+
DESTINATION "lib/swift_static/${lowercase_sdk}"
131+
COMPONENT stdlib)
132+
endforeach()
133+
if(static_binary_lnk_file_list)
134+
add_dependencies(stdlib ${static_binary_lnk_file_list})
135+
add_custom_target(static_binary_magic ALL DEPENDS ${static_binary_lnk_file_list})
136+
endif()
129137
endif()
130138

131139
add_swift_target_library(swiftRuntime OBJECT_LIBRARY

0 commit comments

Comments
 (0)