Skip to content

Commit c5ddf9f

Browse files
committed
Do not install binary swiftmodule for Darwin
This is needed to support Apple internal configurations that would fail consuming such binary swiftmodule (but work as expected when rebuilding from the swiftinterface). Addresses rdar://124390643
1 parent 649618d commit c5ddf9f

File tree

3 files changed

+24
-7
lines changed

3 files changed

+24
-7
lines changed

stdlib/cmake/modules/AddSwiftStdlib.cmake

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -774,6 +774,7 @@ function(add_swift_target_library_single target name)
774774
SHARED
775775
STATIC
776776
ONLY_SWIFTMODULE
777+
DO_NOT_INSTALL_BINARY_SWIFTMODULE
777778
NO_LINK_NAME
778779
INSTALL_WITH_SHARED
779780
IS_FRAGILE)
@@ -1010,7 +1011,8 @@ function(add_swift_target_library_single target name)
10101011
DEPLOYMENT_VERSION_TVOS ${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_TVOS}
10111012
DEPLOYMENT_VERSION_WATCHOS ${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_WATCHOS}
10121013
MACCATALYST_BUILD_FLAVOR "${SWIFTLIB_SINGLE_MACCATALYST_BUILD_FLAVOR}"
1013-
${BOOTSTRAPPING_arg})
1014+
${BOOTSTRAPPING_arg}
1015+
${SWIFTLIB_DO_NOT_INSTALL_BINARY_SWIFTMODULE_keyword})
10141016
add_swift_source_group("${SWIFTLIB_SINGLE_EXTERNAL_SOURCES}")
10151017

10161018
# If there were any swift sources, then a .swiftmodule may have been created.
@@ -1793,6 +1795,7 @@ function(add_swift_target_library name)
17931795
OBJECT_LIBRARY
17941796
SHARED
17951797
STATIC
1798+
DO_NOT_INSTALL_BINARY_SWIFTMODULE
17961799
NO_LINK_NAME
17971800
INSTALL_WITH_SHARED)
17981801
set(SWIFTLIB_single_parameter_options
@@ -2320,6 +2323,7 @@ function(add_swift_target_library name)
23202323
ENABLE_LTO "${SWIFT_STDLIB_ENABLE_LTO}"
23212324
GYB_SOURCES ${SWIFTLIB_GYB_SOURCES}
23222325
PREFIX_INCLUDE_DIRS ${SWIFTLIB_PREFIX_INCLUDE_DIRS}
2326+
${SWIFTLIB_DO_NOT_INSTALL_BINARY_SWIFTMODULE_keyword}
23232327
)
23242328
if(NOT SWIFT_BUILT_STANDALONE AND NOT "${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
23252329
add_dependencies(${VARIANT_NAME} clang)

stdlib/cmake/modules/SwiftSource.cmake

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ function(handle_swift_sources
4949
dependency_sibgen_target_out_var_name
5050
sourcesvar externalvar name)
5151
cmake_parse_arguments(SWIFTSOURCES
52-
"IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;NO_LINK_NAME;IS_FRAGILE;ONLY_SWIFTMODULE"
52+
"IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;NO_LINK_NAME;IS_FRAGILE;ONLY_SWIFTMODULE;DO_NOT_INSTALL_BINARY_SWIFTMODULE"
5353
"SDK;ARCHITECTURE;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING"
5454
"DEPENDS;COMPILE_FLAGS;MODULE_NAME;MODULE_DIR;ENABLE_LTO"
5555
${ARGN})
@@ -66,6 +66,7 @@ function(handle_swift_sources
6666
translate_flag(${SWIFTSOURCES_NO_LINK_NAME} "NO_LINK_NAME" NO_LINK_NAME_arg)
6767
translate_flag(${SWIFTSOURCES_IS_FRAGILE} "IS_FRAGILE" IS_FRAGILE_arg)
6868
translate_flag(${SWIFTSOURCES_ONLY_SWIFTMODULE} "ONLY_SWIFTMODULE" ONLY_SWIFTMODULE_arg)
69+
translate_flag(${SWIFTSOURCES_DO_NOT_INSTALL_BINARY_SWIFTMODULE} "DO_NOT_INSTALL_BINARY_SWIFTMODULE" DO_NOT_INSTALL_BINARY_SWIFTMODULE_arg)
6970
if(DEFINED SWIFTSOURCES_BOOTSTRAPPING)
7071
set(BOOTSTRAPPING_arg "BOOTSTRAPPING" ${SWIFTSOURCES_BOOTSTRAPPING})
7172
endif()
@@ -157,6 +158,7 @@ function(handle_swift_sources
157158
${BOOTSTRAPPING_arg}
158159
${IS_FRAGILE_arg}
159160
${ONLY_SWIFTMODULE_arg}
161+
${DO_NOT_INSTALL_BINARY_SWIFTMODULE_arg}
160162
INSTALL_IN_COMPONENT "${SWIFTSOURCES_INSTALL_IN_COMPONENT}"
161163
DEPLOYMENT_VERSION_OSX ${SWIFTSOURCES_DEPLOYMENT_VERSION_OSX}
162164
DEPLOYMENT_VERSION_IOS ${SWIFTSOURCES_DEPLOYMENT_VERSION_IOS}
@@ -410,7 +412,7 @@ function(_compile_swift_files
410412
dependency_sib_target_out_var_name dependency_sibopt_target_out_var_name
411413
dependency_sibgen_target_out_var_name)
412414
cmake_parse_arguments(SWIFTFILE
413-
"IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;IS_FRAGILE;ONLY_SWIFTMODULE"
415+
"IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;IS_FRAGILE;ONLY_SWIFTMODULE;DO_NOT_INSTALL_BINARY_SWIFTMODULE"
414416
"OUTPUT;MODULE_NAME;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING"
415417
"SOURCES;FLAGS;DEPENDS;SDK;ARCHITECTURE;OPT_FLAGS;MODULE_DIR"
416418
${ARGN})
@@ -723,6 +725,13 @@ function(_compile_swift_files
723725
list(APPEND module_outputs "${interface_file}" "${private_interface_file}")
724726
endif()
725727

728+
set(exclude_binary_swiftmodule_installation_args "")
729+
if(SWIFTFILE_DO_NOT_INSTALL_BINARY_SWIFTMODULE)
730+
list(APPEND
731+
exclude_binary_swiftmodule_installation_args
732+
"REGEX" "${SWIFTFILE_MODULE_NAME}.swiftmodule/[^/]*\\.swiftmodule$" EXCLUDE)
733+
endif()
734+
726735
# macCatalyst zippered module setup
727736
if(maccatalyst_build_flavor STREQUAL "zippered")
728737
compute_library_subdir(maccatalyst_library_subdir
@@ -765,7 +774,8 @@ function(_compile_swift_files
765774
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${maccatalyst_library_subdir}"
766775
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}"
767776
PATTERN "Project" EXCLUDE
768-
OPTIONAL)
777+
OPTIONAL
778+
${exclude_binary_swiftmodule_installation_args})
769779
endif()
770780

771781
# If we have extra regexp flags, check if we match any of the regexps. If so
@@ -793,14 +803,16 @@ function(_compile_swift_files
793803
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${library_subdir}"
794804
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}"
795805
OPTIONAL
796-
PATTERN "Project" EXCLUDE)
806+
PATTERN "Project" EXCLUDE
807+
${exclude_binary_swiftmodule_installation_args})
797808

798809
if(SWIFTFILE_STATIC)
799810
swift_install_in_component(DIRECTORY "${specific_module_dir_static}"
800811
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift_static/${library_subdir}"
801812
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}"
802813
OPTIONAL
803-
PATTERN "Project" EXCLUDE)
814+
PATTERN "Project" EXCLUDE
815+
${exclude_binary_swiftmodule_installation_args})
804816
endif()
805817

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

stdlib/public/Platform/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
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+
DO_NOT_INSTALL_BINARY_SWIFTMODULE)
7980

8081
if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB)
8182
set(SWIFT_ENABLE_REFLECTION OFF)

0 commit comments

Comments
 (0)