@@ -757,22 +757,37 @@ function(_compile_swift_files
757757 message (FATAL_ERROR "Don't know where to put the module files" )
758758 endif ()
759759
760- set (maccatalyst_specific_module_dir
761- "${maccatalyst_module_dir} /${SWIFTFILE_MODULE_NAME} .swiftmodule" )
760+ set (maccatalyst_module_base "${maccatalyst_module_dir} /${SWIFTFILE_MODULE_NAME} " )
761+
762+ set (maccatalyst_module_dir_static "${SWIFTSTATICLIB_DIR} /${maccatalyst_library_subdir} " )
763+ set (maccatalyst_module_base_static "${maccatalyst_module_dir_static} /${SWIFTFILE_MODULE_NAME} " )
764+
762765 set (maccatalyst_module_triple ${SWIFT_SDK_MACCATALYST_ARCH_${SWIFTFILE_ARCHITECTURE} _MODULE})
763- set (maccatalyst_module_base "${maccatalyst_specific_module_dir} /${maccatalyst_module_triple} " )
766+ set (maccatalyst_specific_module_dir "${maccatalyst_module_base} .swiftmodule" )
767+ set (maccatalyst_module_base "${maccatalyst_module_base} .swiftmodule/${maccatalyst_module_triple} " )
768+ set (maccatalyst_specific_module_dir_static "${maccatalyst_module_base_static} .swiftmodule" )
769+ set (maccatalyst_module_base_static "${maccatalyst_module_base_static} .swiftmodule/${maccatalyst_module_triple} " )
764770 set (maccatalyst_module_file "${maccatalyst_module_base} .swiftmodule" )
765771 set (maccatalyst_module_doc_file "${maccatalyst_module_base} .swiftdoc" )
766772
773+ set (maccatalyst_module_file_static "${maccatalyst_module_base_static} .swiftmodule" )
774+ set (maccatalyst_module_doc_file_static "${maccatalyst_module_base_static} .swiftdoc" )
775+
767776 set (maccatalyst_module_outputs "${maccatalyst_module_file} " "${maccatalyst_module_doc_file} " )
777+ set (maccatalyst_module_outputs_static "${maccatalyst_module_file_static} " "${maccatalyst_module_doc_file_static} " )
768778
769779 if (SWIFT_ENABLE_MODULE_INTERFACES AND NOT SWIFTFILE_IS_FRAGILE)
770780 set (maccatalyst_interface_file "${maccatalyst_module_base} .swiftinterface" )
781+ set (maccatalyst_interface_file_static "${maccatalyst_module_base_static} .swiftinterface" )
771782 set (maccatalyst_private_interface_file "${maccatalyst_module_base} .private.swiftinterface" )
783+ set (maccatalyst_private_interface_file_static "${maccatalyst_module_base_static} .private.swiftinterface" )
772784 list (APPEND maccatalyst_module_outputs "${maccatalyst_interface_file} " "${maccatalyst_private_interface_file} " )
785+ list (APPEND maccatalyst_module_outputs_static "${maccatalyst_interface_file_static} " "${maccatalyst_private_interface_file_static} " )
773786 else ()
774787 set (maccatalyst_interface_file)
775788 set (maccatalyst_private_interface_file)
789+ set (maccatalyst_interface_file_static)
790+ set (maccatalyst_private_interface_file_static)
776791 endif ()
777792
778793 if (SWIFT_STDLIB_EMIT_API_DESCRIPTORS AND NOT SWIFTFILE_IS_FRAGILE)
@@ -788,6 +803,15 @@ function(_compile_swift_files
788803 OPTIONAL
789804 PATTERN "Project" EXCLUDE
790805 ${exclude_binary_swiftmodule_installation_args} )
806+
807+ if (SWIFTFILE_STATIC)
808+ swift_install_in_component(DIRECTORY ${maccatalyst_specific_module_dir_static}
809+ DESTINATION "lib${LLVM_LIBDIR_SUFFIX} /swift_static/${maccatalyst_library_subdir} "
810+ COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT} "
811+ OPTIONAL
812+ PATTERN "Project" EXCLUDE
813+ ${exclude_binary_swiftmodule_installation_args} )
814+ endif ()
791815 endif ()
792816
793817 # If we have extra regexp flags, check if we match any of the regexps. If so
@@ -1146,7 +1170,7 @@ function(_compile_swift_files
11461170 COMMAND
11471171 "${CMAKE_COMMAND} " "-E" "remove" "-f" ${maccatalyst_module_outputs}
11481172 COMMAND
1149- "${CMAKE_COMMAND} " "-E" "make_directory" ${maccatalyst_specific_module_dir}
1173+ "${CMAKE_COMMAND} " "-E" "make_directory" ${maccatalyst_module_dir} ${ maccatalyst_specific_module_dir}
11501174 COMMAND
11511175 ${set_environment_args}
11521176 "$<TARGET_FILE:Python3::Interpreter>" "${line_directive_tool} " "@${file_path} " --
@@ -1167,11 +1191,38 @@ function(_compile_swift_files
11671191 COMMENT
11681192 "Generating ${maccatalyst_module_file} " )
11691193
1170- # Piggy-back on the same out-var as the regular swiftmodule
1171- set ("${dependency_module_target_out_var_name} "
1172- "${module_dependency_target} "
1173- "${maccatalyst_module_dependency_target} "
1174- PARENT_SCOPE)
1194+ if (SWIFTFILE_STATIC)
1195+ set (maccatalyst_command_copy_interface_file)
1196+ if (maccatalyst_interface_file)
1197+ set (maccatalyst_command_copy_interface_file
1198+ COMMAND "${CMAKE_COMMAND} " "-E" "copy" ${maccatalyst_interface_file} ${maccatalyst_interface_file_static}
1199+ COMMAND "${CMAKE_COMMAND} " "-E" "copy" ${maccatalyst_private_interface_file} ${maccatalyst_private_interface_file_static} )
1200+ endif ()
1201+ add_custom_command_target(
1202+ maccatalyst_module_dependency_target_static
1203+ COMMAND "${CMAKE_COMMAND} " -E make_directory ${dirs_to_create}
1204+ COMMAND
1205+ "${CMAKE_COMMAND} " "-E" "make_directory" ${maccatalyst_module_dir_static}
1206+ ${maccatalyst_specific_module_dir_static}
1207+ COMMAND
1208+ "${CMAKE_COMMAND} " "-E" "copy" ${maccatalyst_module_file} ${maccatalyst_module_file_static}
1209+ COMMAND
1210+ "${CMAKE_COMMAND} " "-E" "copy" ${maccatalyst_module_doc_file} ${maccatalyst_module_doc_file_static}
1211+ ${maccatalyst_command_copy_interface_file}
1212+ OUTPUT ${maccatalyst_module_outputs_static}
1213+ DEPENDS
1214+ "${maccatalyst_module_dependency_target} "
1215+ "${line_directive_tool} "
1216+ "${file_path_target} "
1217+ ${swift_compiler_tool_dep}
1218+ ${source_files} ${SWIFTFILE_DEPENDS}
1219+ ${swift_ide_test_dependency}
1220+ ${copy_legacy_layouts_dep}
1221+ COMMENT "Generating ${maccatalyst_module_file_static} " )
1222+ set ("${dependency_module_target_out_var_name} " "${module_dependency_target_static} " "${maccatalyst_module_dependency_target_static} " PARENT_SCOPE)
1223+ else ()
1224+ set ("${dependency_module_target_out_var_name} " "${module_dependency_target} " "${maccatalyst_module_dependency_target} " PARENT_SCOPE)
1225+ endif ()
11751226 endif ()
11761227
11771228 # This is the target to generate the .sib files. It is not built by default.
0 commit comments