Skip to content

Commit 93d64e9

Browse files
authored
Merge pull request #72590 from edymtt/edymtt/no-darwin-binary-swiftmodule-in-toolchain
Do not install binary swiftmodule for Darwin
2 parents 05a5bc4 + 0cac358 commit 93d64e9

File tree

3 files changed

+39
-22
lines changed

3 files changed

+39
-22
lines changed

stdlib/cmake/modules/AddSwiftStdlib.cmake

+14-2
Original file line numberDiff line numberDiff line change
@@ -791,7 +791,8 @@ function(add_swift_target_library_single target name)
791791
BACK_DEPLOYMENT_LIBRARY
792792
ENABLE_LTO
793793
MODULE_DIR
794-
BOOTSTRAPPING)
794+
BOOTSTRAPPING
795+
INSTALL_BINARY_SWIFTMODULE)
795796
set(SWIFTLIB_SINGLE_multiple_parameter_options
796797
C_COMPILE_FLAGS
797798
DEPENDS
@@ -852,6 +853,10 @@ function(add_swift_target_library_single target name)
852853
"Either SHARED, STATIC, or OBJECT_LIBRARY must be specified")
853854
endif()
854855

856+
if(NOT DEFINED SWIFTLIB_INSTALL_BINARY_SWIFTMODULE)
857+
set(SWIFTLIB_INSTALL_BINARY_SWIFTMODULE TRUE)
858+
endif()
859+
855860
# Determine the subdirectory where this library will be installed.
856861
set(SWIFTLIB_SINGLE_SUBDIR
857862
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE}")
@@ -1010,7 +1015,8 @@ function(add_swift_target_library_single target name)
10101015
DEPLOYMENT_VERSION_TVOS ${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_TVOS}
10111016
DEPLOYMENT_VERSION_WATCHOS ${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_WATCHOS}
10121017
MACCATALYST_BUILD_FLAVOR "${SWIFTLIB_SINGLE_MACCATALYST_BUILD_FLAVOR}"
1013-
${BOOTSTRAPPING_arg})
1018+
${BOOTSTRAPPING_arg}
1019+
INSTALL_BINARY_SWIFTMODULE ${SWIFTLIB_INSTALL_BINARY_SWIFTMODULE})
10141020
add_swift_source_group("${SWIFTLIB_SINGLE_EXTERNAL_SOURCES}")
10151021

10161022
# If there were any swift sources, then a .swiftmodule may have been created.
@@ -1801,6 +1807,7 @@ function(add_swift_target_library name)
18011807
DEPLOYMENT_VERSION_TVOS
18021808
DEPLOYMENT_VERSION_WATCHOS
18031809
INSTALL_IN_COMPONENT
1810+
INSTALL_BINARY_SWIFTMODULE
18041811
DARWIN_INSTALL_NAME_DIR
18051812
DEPLOYMENT_VERSION_MACCATALYST
18061813
MACCATALYST_BUILD_FLAVOR
@@ -1925,6 +1932,10 @@ function(add_swift_target_library name)
19251932
list(APPEND SWIFTLIB_SWIFT_COMPILE_FLAGS "-Xfrontend;-enable-lexical-lifetimes=false")
19261933
endif()
19271934

1935+
if(NOT DEFINED SWIFTLIB_INSTALL_BINARY_SWIFTMODULE)
1936+
set(SWIFTLIB_INSTALL_BINARY_SWIFTMODULE TRUE)
1937+
endif()
1938+
19281939
if(NOT SWIFT_BUILD_RUNTIME_WITH_HOST_COMPILER AND NOT BUILD_STANDALONE AND
19291940
NOT SWIFT_PREBUILT_CLANG AND NOT SWIFTLIB_IS_SWIFT_ONLY)
19301941
list(APPEND SWIFTLIB_DEPENDS clang)
@@ -2320,6 +2331,7 @@ function(add_swift_target_library name)
23202331
ENABLE_LTO "${SWIFT_STDLIB_ENABLE_LTO}"
23212332
GYB_SOURCES ${SWIFTLIB_GYB_SOURCES}
23222333
PREFIX_INCLUDE_DIRS ${SWIFTLIB_PREFIX_INCLUDE_DIRS}
2334+
INSTALL_BINARY_SWIFTMODULE ${SWIFTLIB_INSTALL_BINARY_SWIFTMODULE}
23232335
)
23242336
if(NOT SWIFT_BUILT_STANDALONE AND NOT "${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
23252337
add_dependencies(${VARIANT_NAME} clang)

stdlib/cmake/modules/SwiftSource.cmake

+23-19
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ function(handle_swift_sources
5050
sourcesvar externalvar name)
5151
cmake_parse_arguments(SWIFTSOURCES
5252
"IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;NO_LINK_NAME;IS_FRAGILE;ONLY_SWIFTMODULE"
53-
"SDK;ARCHITECTURE;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING"
53+
"SDK;ARCHITECTURE;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING;INSTALL_BINARY_SWIFTMODULE"
5454
"DEPENDS;COMPILE_FLAGS;MODULE_NAME;MODULE_DIR;ENABLE_LTO"
5555
${ARGN})
5656
translate_flag(${SWIFTSOURCES_IS_MAIN} "IS_MAIN" IS_MAIN_arg)
@@ -74,6 +74,10 @@ function(handle_swift_sources
7474
set(SWIFTSOURCES_INSTALL_IN_COMPONENT never_install)
7575
endif()
7676

77+
if(NOT DEFINED SWIFTSOURCES_INSTALL_BINARY_SWIFTMODULE)
78+
set(SWIFTSOURCES_INSTALL_BINARY_SWIFTMODULE TRUE)
79+
endif()
80+
7781
# Check arguments.
7882
precondition(SWIFTSOURCES_SDK "Should specify an SDK")
7983
precondition(SWIFTSOURCES_ARCHITECTURE "Should specify an architecture")
@@ -157,6 +161,7 @@ function(handle_swift_sources
157161
${BOOTSTRAPPING_arg}
158162
${IS_FRAGILE_arg}
159163
${ONLY_SWIFTMODULE_arg}
164+
INSTALL_BINARY_SWIFTMODULE ${SWIFTSOURCES_INSTALL_BINARY_SWIFTMODULE}
160165
INSTALL_IN_COMPONENT "${SWIFTSOURCES_INSTALL_IN_COMPONENT}"
161166
DEPLOYMENT_VERSION_OSX ${SWIFTSOURCES_DEPLOYMENT_VERSION_OSX}
162167
DEPLOYMENT_VERSION_IOS ${SWIFTSOURCES_DEPLOYMENT_VERSION_IOS}
@@ -411,10 +416,14 @@ function(_compile_swift_files
411416
dependency_sibgen_target_out_var_name)
412417
cmake_parse_arguments(SWIFTFILE
413418
"IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;IS_FRAGILE;ONLY_SWIFTMODULE"
414-
"OUTPUT;MODULE_NAME;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING"
419+
"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"
415420
"SOURCES;FLAGS;DEPENDS;SDK;ARCHITECTURE;OPT_FLAGS;MODULE_DIR"
416421
${ARGN})
417422

423+
if(NOT DEFINED SWIFTFILE_INSTALL_BINARY_SWIFTMODULE)
424+
set(SWIFTFILE_INSTALL_BINARY_SWIFTMODULE TRUE)
425+
endif()
426+
418427
# Check arguments.
419428
list(LENGTH SWIFTFILE_OUTPUT num_outputs)
420429
list(GET SWIFTFILE_OUTPUT 0 first_output)
@@ -721,20 +730,11 @@ function(_compile_swift_files
721730
list(APPEND module_outputs "${interface_file}" "${private_interface_file}")
722731
endif()
723732

724-
set(optional_arg)
725-
if(SWIFTFILE_SDK IN_LIST SWIFT_DARWIN_PLATFORMS OR
726-
SWIFTFILE_SDK STREQUAL "MACCATALYST")
727-
# Allow installation of stdlib without building all variants on Darwin.
728-
set(optional_arg "OPTIONAL")
729-
endif()
730-
731-
swift_install_in_component(DIRECTORY "${specific_module_dir}"
732-
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${library_subdir}"
733-
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}")
734-
if(SWIFTFILE_STATIC)
735-
swift_install_in_component(DIRECTORY "${specific_module_dir_static}"
736-
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift_static/${library_subdir}"
737-
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}")
733+
set(exclude_binary_swiftmodule_installation_args "")
734+
if(NOT SWIFTFILE_INSTALL_BINARY_SWIFTMODULE)
735+
list(APPEND
736+
exclude_binary_swiftmodule_installation_args
737+
"REGEX" "${SWIFTFILE_MODULE_NAME}.swiftmodule/[^/]*\\.swiftmodule$" EXCLUDE)
738738
endif()
739739

740740
# macCatalyst zippered module setup
@@ -778,7 +778,9 @@ function(_compile_swift_files
778778
swift_install_in_component(DIRECTORY ${maccatalyst_specific_module_dir}
779779
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${maccatalyst_library_subdir}"
780780
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}"
781-
"${optional_arg}")
781+
OPTIONAL
782+
PATTERN "Project" EXCLUDE
783+
${exclude_binary_swiftmodule_installation_args})
782784
endif()
783785

784786
# If we have extra regexp flags, check if we match any of the regexps. If so
@@ -806,14 +808,16 @@ function(_compile_swift_files
806808
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${library_subdir}"
807809
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}"
808810
OPTIONAL
809-
PATTERN "Project" EXCLUDE)
811+
PATTERN "Project" EXCLUDE
812+
${exclude_binary_swiftmodule_installation_args})
810813

811814
if(SWIFTFILE_STATIC)
812815
swift_install_in_component(DIRECTORY "${specific_module_dir_static}"
813816
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift_static/${library_subdir}"
814817
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}"
815818
OPTIONAL
816-
PATTERN "Project" EXCLUDE)
819+
PATTERN "Project" EXCLUDE
820+
${exclude_binary_swiftmodule_installation_args})
817821
endif()
818822

819823
set(line_directive_tool "${SWIFT_SOURCE_DIR}/utils/line-directive")

stdlib/public/Platform/CMakeLists.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ add_swift_target_library(swiftDarwin ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES}
7575
${swiftDarwin_common_options}
7676
TARGET_SDKS "${swiftDarwin_target_sdks}"
7777
INSTALL_IN_COMPONENT sdk-overlay
78-
MACCATALYST_BUILD_FLAVOR "zippered")
78+
MACCATALYST_BUILD_FLAVOR "zippered"
79+
INSTALL_BINARY_SWIFTMODULE FALSE)
7980

8081
if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB)
8182
set(SWIFT_ENABLE_REFLECTION OFF)

0 commit comments

Comments
 (0)