diff --git a/lib/Driver/CMakeLists.txt b/lib/Driver/CMakeLists.txt index 6b36e0e2eda0d..380c3c6dc8a0c 100644 --- a/lib/Driver/CMakeLists.txt +++ b/lib/Driver/CMakeLists.txt @@ -26,42 +26,3 @@ target_link_libraries(swiftDriver PRIVATE swiftAST swiftBasic swiftOption) - -# Generate the static-stdlib-args.lnk file used by -static-stdlib option -# for 'GenericUnix' (eg linux) -if(SWIFT_BUILD_STATIC_STDLIB) - set(static_stdlib_lnk_file_list) - foreach(sdk ${SWIFT_CONFIGURED_SDKS}) - if("${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "ELF") - string(TOLOWER "${sdk}" lowercase_sdk) - if(SWIFT_${SWIFT_HOST_VARIANT_SDK}_${SWIFT_HOST_VARIANT_ARCH}_ICU_STATICLIB) - set(ICU_STATICLIB "TRUE") - else() - set(ICU_STATICLIB "FALSE") - find_package(ICU REQUIRED COMPONENTS uc i18n) - get_filename_component(ICU_UC_LIBDIR "${ICU_UC_LIBRARIES}" DIRECTORY) - get_filename_component(ICU_I18N_LIBDIR "${ICU_I18N_LIBRARIES}" DIRECTORY) - endif() - set(linkfile "${lowercase_sdk}/static-stdlib-args.lnk") - add_custom_command_target(swift_static_stdlib_${sdk}_args - COMMAND - "${SWIFT_SOURCE_DIR}/utils/gen-static-stdlib-link-args" - "${sdk}" - "${SWIFTSTATICLIB_DIR}/${linkfile}" - "${ICU_STATICLIB}" - "${ICU_UC_LIBDIR}" - "${ICU_I18N_LIBDIR}" - OUTPUT - "${SWIFTSTATICLIB_DIR}/${linkfile}" - DEPENDS - "${SWIFT_SOURCE_DIR}/utils/gen-static-stdlib-link-args") - - list(APPEND static_stdlib_lnk_file_list ${swift_static_stdlib_${sdk}_args}) - swift_install_in_component(FILES "${SWIFTSTATICLIB_DIR}/${linkfile}" - DESTINATION "lib/swift_static/${lowercase_sdk}" - COMPONENT stdlib) - endif() - endforeach() - add_custom_target(swift_static_lnk_args ALL DEPENDS ${static_stdlib_lnk_file_list}) - add_dependencies(stdlib swift_static_lnk_args) -endif() diff --git a/stdlib/public/runtime/CMakeLists.txt b/stdlib/public/runtime/CMakeLists.txt index 53499105de23b..aad215ac87e15 100644 --- a/stdlib/public/runtime/CMakeLists.txt +++ b/stdlib/public/runtime/CMakeLists.txt @@ -263,6 +263,40 @@ foreach(sdk ${SWIFT_CONFIGURED_SDKS}) ${swiftImageRegistration-${arch_suffix}}) add_dependencies(stdlib swift-stdlib-${arch_suffix} swiftImageRegistration-${arch_suffix}) endif() + + # Generate the static-stdlib-args.lnk file used by -static-stdlib option for + # 'GenericUnix' (eg linux) + if(${SWIFT_SDK_${sdk}_OBJECT_FORMAT} STREQUAL ELF) + string(TOLOWER "${sdk}" lowercase_sdk) + if(SWIFT_${SWIFT_HOST_VARIANT_SDK}_${SWIFT_HOST_VARIANT_ARCH}_ICU_STATICLIB) + set(ICU_STATICLIB "TRUE") + else() + set(ICU_STATICLIB "FALSE") + find_package(ICU REQUIRED COMPONENTS uc i18n) + get_filename_component(ICU_UC_LIBDIR "${ICU_UC_LIBRARIES}" DIRECTORY) + get_filename_component(ICU_I18N_LIBDIR "${ICU_I18N_LIBRARIES}" DIRECTORY) + endif() + set(linkfile "${lowercase_sdk}/static-stdlib-args.lnk") + add_custom_command_target(swift_static_stdlib_${sdk}_args + COMMAND + "${SWIFT_SOURCE_DIR}/utils/gen-static-stdlib-link-args" + "${sdk}" + "${SWIFTSTATICLIB_DIR}/${linkfile}" + "${ICU_STATICLIB}" + "${ICU_UC_LIBDIR}" + "${ICU_I18N_LIBDIR}" + OUTPUT + "${SWIFTSTATICLIB_DIR}/${linkfile}" + DEPENDS + "${SWIFT_SOURCE_DIR}/utils/gen-static-stdlib-link-args") + + list(APPEND static_stdlib_lnk_file_list ${swift_static_stdlib_${sdk}_args}) + swift_install_in_component(FILES "${SWIFTSTATICLIB_DIR}/${linkfile}" + DESTINATION "lib/swift_static/${lowercase_sdk}" + COMPONENT stdlib) + endif() endforeach() endforeach() +add_custom_target(swift_static_lnk_args ALL DEPENDS ${static_stdlib_lnk_file_list}) +add_dependencies(stdlib swift_static_lnk_args)