Skip to content

Commit b4a06d7

Browse files
committed
[6.0] 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 (cherry picked from commit 0cac358)
1 parent b18e1fe commit b4a06d7

File tree

3 files changed

+40
-8
lines changed

3 files changed

+40
-8
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

+24-5
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,6 +730,13 @@ function(_compile_swift_files
721730
list(APPEND module_outputs "${interface_file}" "${private_interface_file}")
722731
endif()
723732

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)
738+
endif()
739+
724740
# macCatalyst zippered module setup
725741
if(maccatalyst_build_flavor STREQUAL "zippered")
726742
compute_library_subdir(maccatalyst_library_subdir
@@ -762,8 +778,9 @@ function(_compile_swift_files
762778
swift_install_in_component(DIRECTORY ${maccatalyst_specific_module_dir}
763779
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${maccatalyst_library_subdir}"
764780
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}"
781+
OPTIONAL
765782
PATTERN "Project" EXCLUDE
766-
OPTIONAL)
783+
${exclude_binary_swiftmodule_installation_args})
767784
endif()
768785

769786
# If we have extra regexp flags, check if we match any of the regexps. If so
@@ -791,14 +808,16 @@ function(_compile_swift_files
791808
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${library_subdir}"
792809
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}"
793810
OPTIONAL
794-
PATTERN "Project" EXCLUDE)
811+
PATTERN "Project" EXCLUDE
812+
${exclude_binary_swiftmodule_installation_args})
795813

796814
if(SWIFTFILE_STATIC)
797815
swift_install_in_component(DIRECTORY "${specific_module_dir_static}"
798816
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift_static/${library_subdir}"
799817
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}"
800818
OPTIONAL
801-
PATTERN "Project" EXCLUDE)
819+
PATTERN "Project" EXCLUDE
820+
${exclude_binary_swiftmodule_installation_args})
802821
endif()
803822

804823
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)