@@ -50,7 +50,7 @@ function(handle_swift_sources
50
50
sourcesvar externalvar name )
51
51
cmake_parse_arguments (SWIFTSOURCES
52
52
"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 "
54
54
"DEPENDS;COMPILE_FLAGS;MODULE_NAME;MODULE_DIR;ENABLE_LTO"
55
55
${ARGN} )
56
56
translate_flag(${SWIFTSOURCES_IS_MAIN} "IS_MAIN" IS_MAIN_arg)
@@ -74,6 +74,10 @@ function(handle_swift_sources
74
74
set (SWIFTSOURCES_INSTALL_IN_COMPONENT never_install)
75
75
endif ()
76
76
77
+ if (NOT DEFINED SWIFTSOURCES_INSTALL_BINARY_SWIFTMODULE)
78
+ set (SWIFTSOURCES_INSTALL_BINARY_SWIFTMODULE TRUE )
79
+ endif ()
80
+
77
81
# Check arguments.
78
82
precondition(SWIFTSOURCES_SDK "Should specify an SDK" )
79
83
precondition(SWIFTSOURCES_ARCHITECTURE "Should specify an architecture" )
@@ -157,6 +161,7 @@ function(handle_swift_sources
157
161
${BOOTSTRAPPING_arg}
158
162
${IS_FRAGILE_arg}
159
163
${ONLY_SWIFTMODULE_arg}
164
+ INSTALL_BINARY_SWIFTMODULE ${SWIFTSOURCES_INSTALL_BINARY_SWIFTMODULE}
160
165
INSTALL_IN_COMPONENT "${SWIFTSOURCES_INSTALL_IN_COMPONENT} "
161
166
DEPLOYMENT_VERSION_OSX ${SWIFTSOURCES_DEPLOYMENT_VERSION_OSX}
162
167
DEPLOYMENT_VERSION_IOS ${SWIFTSOURCES_DEPLOYMENT_VERSION_IOS}
@@ -411,10 +416,14 @@ function(_compile_swift_files
411
416
dependency_sibgen_target_out_var_name)
412
417
cmake_parse_arguments (SWIFTFILE
413
418
"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 "
415
420
"SOURCES;FLAGS;DEPENDS;SDK;ARCHITECTURE;OPT_FLAGS;MODULE_DIR"
416
421
${ARGN} )
417
422
423
+ if (NOT DEFINED SWIFTFILE_INSTALL_BINARY_SWIFTMODULE)
424
+ set (SWIFTFILE_INSTALL_BINARY_SWIFTMODULE TRUE )
425
+ endif ()
426
+
418
427
# Check arguments.
419
428
list (LENGTH SWIFTFILE_OUTPUT num_outputs)
420
429
list (GET SWIFTFILE_OUTPUT 0 first_output)
@@ -723,6 +732,13 @@ function(_compile_swift_files
723
732
list (APPEND module_outputs "${interface_file} " "${private_interface_file} " )
724
733
endif ()
725
734
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
+
726
742
# macCatalyst zippered module setup
727
743
if (maccatalyst_build_flavor STREQUAL "zippered" )
728
744
compute_library_subdir(maccatalyst_library_subdir
@@ -764,8 +780,9 @@ function(_compile_swift_files
764
780
swift_install_in_component(DIRECTORY ${maccatalyst_specific_module_dir}
765
781
DESTINATION "lib${LLVM_LIBDIR_SUFFIX} /swift/${maccatalyst_library_subdir} "
766
782
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT} "
783
+ OPTIONAL
767
784
PATTERN "Project" EXCLUDE
768
- OPTIONAL )
785
+ ${exclude_binary_swiftmodule_installation_args} )
769
786
endif ()
770
787
771
788
# If we have extra regexp flags, check if we match any of the regexps. If so
@@ -793,14 +810,16 @@ function(_compile_swift_files
793
810
DESTINATION "lib${LLVM_LIBDIR_SUFFIX} /swift/${library_subdir} "
794
811
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT} "
795
812
OPTIONAL
796
- PATTERN "Project" EXCLUDE )
813
+ PATTERN "Project" EXCLUDE
814
+ ${exclude_binary_swiftmodule_installation_args} )
797
815
798
816
if (SWIFTFILE_STATIC)
799
817
swift_install_in_component(DIRECTORY "${specific_module_dir_static} "
800
818
DESTINATION "lib${LLVM_LIBDIR_SUFFIX} /swift_static/${library_subdir} "
801
819
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT} "
802
820
OPTIONAL
803
- PATTERN "Project" EXCLUDE )
821
+ PATTERN "Project" EXCLUDE
822
+ ${exclude_binary_swiftmodule_installation_args} )
804
823
endif ()
805
824
806
825
set (line_directive_tool "${SWIFT_SOURCE_DIR} /utils/line-directive" )
0 commit comments