Skip to content

Do not install binary swiftmodule for Darwin #72590

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions stdlib/cmake/modules/AddSwiftStdlib.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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}")
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down
42 changes: 23 additions & 19 deletions stdlib/cmake/modules/SwiftSource.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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")
Expand Down Expand Up @@ -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}
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -723,20 +732,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
Expand Down Expand Up @@ -780,7 +780,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
Expand Down Expand Up @@ -808,14 +810,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")
Expand Down
3 changes: 2 additions & 1 deletion stdlib/public/Platform/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down