@@ -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" )
0 commit comments