Skip to content

Commit 0cac358

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 0cac358

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)
@@ -723,6 +732,13 @@ function(_compile_swift_files
723732
list(APPEND module_outputs "${interface_file}" "${private_interface_file}")
724733
endif()
725734

735+
set(exclude_binary_swiftmodule_installation_args "")
736+
if(NOT SWIFTFILE_INSTALL_BINARY_SWIFTMODULE)
737+
list(APPEND
738+
exclude_binary_swiftmodule_installation_args
739+
"REGEX" "${SWIFTFILE_MODULE_NAME}.swiftmodule/[^/]*\\.swiftmodule$" EXCLUDE)
740+
endif()
741+
726742
# macCatalyst zippered module setup
727743
if(maccatalyst_build_flavor STREQUAL "zippered")
728744
compute_library_subdir(maccatalyst_library_subdir
@@ -764,8 +780,9 @@ function(_compile_swift_files
764780
swift_install_in_component(DIRECTORY ${maccatalyst_specific_module_dir}
765781
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${maccatalyst_library_subdir}"
766782
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}"
783+
OPTIONAL
767784
PATTERN "Project" EXCLUDE
768-
OPTIONAL)
785+
${exclude_binary_swiftmodule_installation_args})
769786
endif()
770787

771788
# If we have extra regexp flags, check if we match any of the regexps. If so
@@ -793,14 +810,16 @@ function(_compile_swift_files
793810
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${library_subdir}"
794811
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}"
795812
OPTIONAL
796-
PATTERN "Project" EXCLUDE)
813+
PATTERN "Project" EXCLUDE
814+
${exclude_binary_swiftmodule_installation_args})
797815

798816
if(SWIFTFILE_STATIC)
799817
swift_install_in_component(DIRECTORY "${specific_module_dir_static}"
800818
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift_static/${library_subdir}"
801819
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT}"
802820
OPTIONAL
803-
PATTERN "Project" EXCLUDE)
821+
PATTERN "Project" EXCLUDE
822+
${exclude_binary_swiftmodule_installation_args})
804823
endif()
805824

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