Skip to content

Commit 73d9545

Browse files
authored
Merge pull request swiftlang#31817 from compnerd/bashful
runtime: generate the link arguments in CMake
2 parents f05e063 + 6244af5 commit 73d9545

File tree

2 files changed

+29
-103
lines changed

2 files changed

+29
-103
lines changed

stdlib/public/runtime/CMakeLists.txt

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -274,34 +274,44 @@ foreach(sdk ${SWIFT_CONFIGURED_SDKS})
274274
if(${SWIFT_SDK_${sdk}_OBJECT_FORMAT} STREQUAL ELF)
275275
string(TOLOWER "${sdk}" lowercase_sdk)
276276
if(SWIFT_${SWIFT_HOST_VARIANT_SDK}_${SWIFT_HOST_VARIANT_ARCH}_ICU_STATICLIB)
277-
set(ICU_STATICLIB "TRUE")
277+
set(libicu_i18n_a -licui18nswift)
278+
set(libicu_uc_a -licuucswift)
279+
set(libicu_data_a -licudataswift)
278280
else()
279-
set(ICU_STATICLIB "FALSE")
280281
find_package(ICU REQUIRED COMPONENTS uc i18n)
281282
get_filename_component(ICU_UC_LIBDIR "${ICU_UC_LIBRARIES}" DIRECTORY)
282283
get_filename_component(ICU_I18N_LIBDIR "${ICU_I18N_LIBRARIES}" DIRECTORY)
284+
285+
set(libicu_i18n_a -licui18n)
286+
set(libicu_uc_a -licuuc)
287+
set(libicu_data_a)
288+
if(EXISTS ${ICU_I18N_LIBDIR}/libicui18n.a AND
289+
EXISTS ${ICU_UC_LIBDIR}/libicuuc.a AND
290+
EXISTS ${ICU_UC_LIBDIR}/libicudata.a)
291+
set(libicu_i18n_a ${ICU_I18N_LIBDIR}/libicui18n.a)
292+
set(libicu_uc_a ${ICU_UC_LIBDIR}/libicuuc.a)
293+
set(libicu_data_a ${ICU_UC_LIBDIR}/libicudata.a)
294+
endif()
283295
endif()
284-
set(linkfile "${lowercase_sdk}/static-stdlib-args.lnk")
285-
add_custom_command_target(swift_static_stdlib_${sdk}_args
286-
COMMAND
287-
"${SWIFT_SOURCE_DIR}/utils/gen-static-stdlib-link-args"
288-
"${sdk}"
289-
"${SWIFTSTATICLIB_DIR}/${linkfile}"
290-
"${ICU_STATICLIB}"
291-
"${ICU_UC_LIBDIR}"
292-
"${ICU_I18N_LIBDIR}"
293-
OUTPUT
294-
"${SWIFTSTATICLIB_DIR}/${linkfile}"
295-
DEPENDS
296-
"${SWIFT_SOURCE_DIR}/utils/gen-static-stdlib-link-args")
297296

298-
list(APPEND static_stdlib_lnk_file_list ${swift_static_stdlib_${sdk}_args})
297+
set(linkfile ${lowercase_sdk}/static-stdlib-args.lnk)
298+
file(WRITE "${SWIFTSTATICLIB_DIR}/${linkfile}" "
299+
-ldl
300+
-lpthread
301+
-lswiftCore
302+
-lswiftImageInspectionShared
303+
${libicu_i18n_a}
304+
${libicu_uc_a}
305+
${libicu_data_a}
306+
-lstdc++
307+
-lm
308+
-Xlinker -export-dynamic
309+
-Xlinker --exclude-libs
310+
-Xlinker ALL")
311+
299312
swift_install_in_component(FILES "${SWIFTSTATICLIB_DIR}/${linkfile}"
300313
DESTINATION "lib/swift_static/${lowercase_sdk}"
301314
COMPONENT stdlib)
302315
endif()
303316
endforeach()
304317
endforeach()
305-
add_custom_target(swift_static_lnk_args ALL DEPENDS ${static_stdlib_lnk_file_list})
306-
add_dependencies(stdlib swift_static_lnk_args)
307-

utils/gen-static-stdlib-link-args

Lines changed: 0 additions & 84 deletions
This file was deleted.

0 commit comments

Comments
 (0)