@@ -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)
@@ -721,6 +730,13 @@ function(_compile_swift_files
721
730
list (APPEND module_outputs "${interface_file} " "${private_interface_file} " )
722
731
endif ()
723
732
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
+
724
740
# macCatalyst zippered module setup
725
741
if (maccatalyst_build_flavor STREQUAL "zippered" )
726
742
compute_library_subdir(maccatalyst_library_subdir
@@ -762,8 +778,9 @@ function(_compile_swift_files
762
778
swift_install_in_component(DIRECTORY ${maccatalyst_specific_module_dir}
763
779
DESTINATION "lib${LLVM_LIBDIR_SUFFIX} /swift/${maccatalyst_library_subdir} "
764
780
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT} "
781
+ OPTIONAL
765
782
PATTERN "Project" EXCLUDE
766
- OPTIONAL )
783
+ ${exclude_binary_swiftmodule_installation_args} )
767
784
endif ()
768
785
769
786
# If we have extra regexp flags, check if we match any of the regexps. If so
@@ -791,14 +808,16 @@ function(_compile_swift_files
791
808
DESTINATION "lib${LLVM_LIBDIR_SUFFIX} /swift/${library_subdir} "
792
809
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT} "
793
810
OPTIONAL
794
- PATTERN "Project" EXCLUDE )
811
+ PATTERN "Project" EXCLUDE
812
+ ${exclude_binary_swiftmodule_installation_args} )
795
813
796
814
if (SWIFTFILE_STATIC)
797
815
swift_install_in_component(DIRECTORY "${specific_module_dir_static} "
798
816
DESTINATION "lib${LLVM_LIBDIR_SUFFIX} /swift_static/${library_subdir} "
799
817
COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT} "
800
818
OPTIONAL
801
- PATTERN "Project" EXCLUDE )
819
+ PATTERN "Project" EXCLUDE
820
+ ${exclude_binary_swiftmodule_installation_args} )
802
821
endif ()
803
822
804
823
set (line_directive_tool "${SWIFT_SOURCE_DIR} /utils/line-directive" )
0 commit comments