Merge pull request #72590 from edymtt/edymtt/no-darwin-binary-swiftmodule-in-toolchain

Do not install binary swiftmodule for Darwin
This commit is contained in:
Eric Miotto
2024-03-28 09:22:32 -07:00
committed by GitHub
3 changed files with 39 additions and 22 deletions

View File

@@ -791,7 +791,8 @@ function(add_swift_target_library_single target name)
BACK_DEPLOYMENT_LIBRARY
ENABLE_LTO
MODULE_DIR
BOOTSTRAPPING)
BOOTSTRAPPING
INSTALL_BINARY_SWIFTMODULE)
set(SWIFTLIB_SINGLE_multiple_parameter_options
C_COMPILE_FLAGS
DEPENDS
@@ -852,6 +853,10 @@ function(add_swift_target_library_single target name)
"Either SHARED, STATIC, or OBJECT_LIBRARY must be specified")
endif()
if(NOT DEFINED SWIFTLIB_INSTALL_BINARY_SWIFTMODULE)
set(SWIFTLIB_INSTALL_BINARY_SWIFTMODULE TRUE)
endif()
# Determine the subdirectory where this library will be installed.
set(SWIFTLIB_SINGLE_SUBDIR
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE}")
@@ -1010,7 +1015,8 @@ function(add_swift_target_library_single target name)
DEPLOYMENT_VERSION_TVOS ${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_TVOS}
DEPLOYMENT_VERSION_WATCHOS ${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_WATCHOS}
MACCATALYST_BUILD_FLAVOR "${SWIFTLIB_SINGLE_MACCATALYST_BUILD_FLAVOR}"
${BOOTSTRAPPING_arg})
${BOOTSTRAPPING_arg}
INSTALL_BINARY_SWIFTMODULE ${SWIFTLIB_INSTALL_BINARY_SWIFTMODULE})
add_swift_source_group("${SWIFTLIB_SINGLE_EXTERNAL_SOURCES}")
# If there were any swift sources, then a .swiftmodule may have been created.
@@ -1801,6 +1807,7 @@ function(add_swift_target_library name)
DEPLOYMENT_VERSION_TVOS
DEPLOYMENT_VERSION_WATCHOS
INSTALL_IN_COMPONENT
INSTALL_BINARY_SWIFTMODULE
DARWIN_INSTALL_NAME_DIR
DEPLOYMENT_VERSION_MACCATALYST
MACCATALYST_BUILD_FLAVOR
@@ -1925,6 +1932,10 @@ function(add_swift_target_library name)
list(APPEND SWIFTLIB_SWIFT_COMPILE_FLAGS "-Xfrontend;-enable-lexical-lifetimes=false")
endif()
if(NOT DEFINED SWIFTLIB_INSTALL_BINARY_SWIFTMODULE)
set(SWIFTLIB_INSTALL_BINARY_SWIFTMODULE TRUE)
endif()
if(NOT SWIFT_BUILD_RUNTIME_WITH_HOST_COMPILER AND NOT BUILD_STANDALONE AND
NOT SWIFT_PREBUILT_CLANG AND NOT SWIFTLIB_IS_SWIFT_ONLY)
list(APPEND SWIFTLIB_DEPENDS clang)
@@ -2320,6 +2331,7 @@ function(add_swift_target_library name)
ENABLE_LTO "${SWIFT_STDLIB_ENABLE_LTO}"
GYB_SOURCES ${SWIFTLIB_GYB_SOURCES}
PREFIX_INCLUDE_DIRS ${SWIFTLIB_PREFIX_INCLUDE_DIRS}
INSTALL_BINARY_SWIFTMODULE ${SWIFTLIB_INSTALL_BINARY_SWIFTMODULE}
)
if(NOT SWIFT_BUILT_STANDALONE AND NOT "${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
add_dependencies(${VARIANT_NAME} clang)

View File

@@ -50,7 +50,7 @@ function(handle_swift_sources
sourcesvar externalvar name)
cmake_parse_arguments(SWIFTSOURCES
"IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;NO_LINK_NAME;IS_FRAGILE;ONLY_SWIFTMODULE"
"SDK;ARCHITECTURE;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING"
"SDK;ARCHITECTURE;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING;INSTALL_BINARY_SWIFTMODULE"
"DEPENDS;COMPILE_FLAGS;MODULE_NAME;MODULE_DIR;ENABLE_LTO"
${ARGN})
translate_flag(${SWIFTSOURCES_IS_MAIN} "IS_MAIN" IS_MAIN_arg)
@@ -74,6 +74,10 @@ function(handle_swift_sources
set(SWIFTSOURCES_INSTALL_IN_COMPONENT never_install)
endif()
if(NOT DEFINED SWIFTSOURCES_INSTALL_BINARY_SWIFTMODULE)
set(SWIFTSOURCES_INSTALL_BINARY_SWIFTMODULE TRUE)
endif()
# Check arguments.
precondition(SWIFTSOURCES_SDK "Should specify an SDK")
precondition(SWIFTSOURCES_ARCHITECTURE "Should specify an architecture")
@@ -157,6 +161,7 @@ function(handle_swift_sources
${BOOTSTRAPPING_arg}
${IS_FRAGILE_arg}
${ONLY_SWIFTMODULE_arg}
INSTALL_BINARY_SWIFTMODULE ${SWIFTSOURCES_INSTALL_BINARY_SWIFTMODULE}
INSTALL_IN_COMPONENT "${SWIFTSOURCES_INSTALL_IN_COMPONENT}"
DEPLOYMENT_VERSION_OSX ${SWIFTSOURCES_DEPLOYMENT_VERSION_OSX}
DEPLOYMENT_VERSION_IOS ${SWIFTSOURCES_DEPLOYMENT_VERSION_IOS}
@@ -411,10 +416,14 @@ function(_compile_swift_files
dependency_sibgen_target_out_var_name)
cmake_parse_arguments(SWIFTFILE
"IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;IS_FRAGILE;ONLY_SWIFTMODULE"
"OUTPUT;MODULE_NAME;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING"
"OUTPUT;MODULE_NAME;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING;INSTALL_BINARY_SWIFTMODULE"
"SOURCES;FLAGS;DEPENDS;SDK;ARCHITECTURE;OPT_FLAGS;MODULE_DIR"
${ARGN})
if(NOT DEFINED SWIFTFILE_INSTALL_BINARY_SWIFTMODULE)
set(SWIFTFILE_INSTALL_BINARY_SWIFTMODULE TRUE)
endif()
# Check arguments.
list(LENGTH SWIFTFILE_OUTPUT num_outputs)
list(GET SWIFTFILE_OUTPUT 0 first_output)
@@ -721,20 +730,11 @@ function(_compile_swift_files
list(APPEND module_outputs "${interface_file}" "${private_interface_file}")
endif()
set(optional_arg)
if(SWIFTFILE_SDK IN_LIST SWIFT_DARWIN_PLATFORMS OR
SWIFTFILE_SDK STREQUAL "MACCATALYST")
# Allow installation of stdlib without building all variants on Darwin.
set(optional_arg "OPTIONAL")
endif()
swift_install_in_component(DIRECTORY "${specific_module_dir}"
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${library_subdir}"
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}")
if(SWIFTFILE_STATIC)
swift_install_in_component(DIRECTORY "${specific_module_dir_static}"
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift_static/${library_subdir}"
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}")
set(exclude_binary_swiftmodule_installation_args "")
if(NOT SWIFTFILE_INSTALL_BINARY_SWIFTMODULE)
list(APPEND
exclude_binary_swiftmodule_installation_args
"REGEX" "${SWIFTFILE_MODULE_NAME}.swiftmodule/[^/]*\\.swiftmodule$" EXCLUDE)
endif()
# macCatalyst zippered module setup
@@ -778,7 +778,9 @@ function(_compile_swift_files
swift_install_in_component(DIRECTORY ${maccatalyst_specific_module_dir}
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${maccatalyst_library_subdir}"
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}"
"${optional_arg}")
OPTIONAL
PATTERN "Project" EXCLUDE
${exclude_binary_swiftmodule_installation_args})
endif()
# If we have extra regexp flags, check if we match any of the regexps. If so
@@ -806,14 +808,16 @@ function(_compile_swift_files
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${library_subdir}"
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}"
OPTIONAL
PATTERN "Project" EXCLUDE)
PATTERN "Project" EXCLUDE
${exclude_binary_swiftmodule_installation_args})
if(SWIFTFILE_STATIC)
swift_install_in_component(DIRECTORY "${specific_module_dir_static}"
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift_static/${library_subdir}"
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}"
OPTIONAL
PATTERN "Project" EXCLUDE)
PATTERN "Project" EXCLUDE
${exclude_binary_swiftmodule_installation_args})
endif()
set(line_directive_tool "${SWIFT_SOURCE_DIR}/utils/line-directive")

View File

@@ -75,7 +75,8 @@ add_swift_target_library(swiftDarwin ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES}
${swiftDarwin_common_options}
TARGET_SDKS "${swiftDarwin_target_sdks}"
INSTALL_IN_COMPONENT sdk-overlay
MACCATALYST_BUILD_FLAVOR "zippered")
MACCATALYST_BUILD_FLAVOR "zippered"
INSTALL_BINARY_SWIFTMODULE FALSE)
if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB)
set(SWIFT_ENABLE_REFLECTION OFF)