diff --git a/cmake/modules/AddSwift.cmake b/cmake/modules/AddSwift.cmake index 0a24fcd7cf88f..c1bfc9e582673 100644 --- a/cmake/modules/AddSwift.cmake +++ b/cmake/modules/AddSwift.cmake @@ -630,13 +630,6 @@ function(_add_swift_lipo_target) CUSTOM_TARGET_NAME "${LIPO_TARGET}" OUTPUT "${LIPO_OUTPUT}" DEPENDS ${source_targets}) - else() - # We don't know how to create fat binaries for other platforms. - add_custom_command_target(unused_var - COMMAND "${CMAKE_COMMAND}" "-E" "copy" "${source_binaries}" "${LIPO_OUTPUT}" - CUSTOM_TARGET_NAME "${LIPO_TARGET}" - OUTPUT "${LIPO_OUTPUT}" - DEPENDS ${source_targets}) endif() endfunction() @@ -2006,7 +1999,7 @@ function(add_swift_target_library name) endif() endif() - if(NOT SWIFTLIB_OBJECT_LIBRARY) + if(NOT SWIFTLIB_OBJECT_LIBRARY AND sdk IN_LIST SWIFT_APPLE_PLATFORMS) # Add dependencies on the (not-yet-created) custom lipo target. foreach(DEP ${SWIFTLIB_LINK_LIBRARIES}) if (NOT "${DEP}" STREQUAL "icucore") @@ -2081,15 +2074,17 @@ function(add_swift_target_library name) if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin" AND SWIFTLIB_SHARED) set(codesign_arg CODESIGN) endif() - precondition(THIN_INPUT_TARGETS) - _add_swift_lipo_target(SDK - ${sdk} - TARGET - ${lipo_target} - OUTPUT - ${UNIVERSAL_LIBRARY_NAME} - ${codesign_arg} - ${THIN_INPUT_TARGETS}) + if(sdk IN_LIST SWIFT_APPLE_PLATFORMS) + precondition(THIN_INPUT_TARGETS) + _add_swift_lipo_target(SDK + ${sdk} + TARGET + ${lipo_target} + OUTPUT + ${UNIVERSAL_LIBRARY_NAME} + ${codesign_arg} + ${THIN_INPUT_TARGETS}) + endif() # Cache universal libraries for dependency purposes set(UNIVERSAL_LIBRARY_NAMES_${SWIFT_SDK_${sdk}_LIB_SUBDIR} @@ -2128,6 +2123,17 @@ function(add_swift_target_library name) ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/${resource_dir}/${resource_dir_sdk_subdir}/${SWIFT_PRIMARY_VARIANT_ARCH}" COMPONENT "${SWIFTLIB_INSTALL_IN_COMPONENT}" PERMISSIONS ${file_permissions}) + elseif(sdk STREQUAL ANDROID) + foreach(arch ${SWIFT_SDK_ANDROID_ARCHITECTURES}) + if(SWIFTLIB_SHARED) + set(UNIVERSAL_LIBRARY_NAME "${SWIFTLIB_DIR}/${SWIFT_SDK_${sdk}_LIB_SUBDIR}/${arch}/${CMAKE_SHARED_LIBRARY_PREFIX}${name}.so") + endif() + swift_install_in_component(FILES "${UNIVERSAL_LIBRARY_NAME}" + DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/${resource_dir}/${resource_dir_sdk_subdir}/${arch}" + COMPONENT "${SWIFTLIB_INSTALL_IN_COMPONENT}" + PERMISSIONS ${file_permissions} + "${optional_arg}") + endforeach() else() swift_install_in_component(FILES "${UNIVERSAL_LIBRARY_NAME}" DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/${resource_dir}/${resource_dir_sdk_subdir}"