@@ -656,6 +656,12 @@ function(_compile_swift_files
656656 "-emit-private-module-interface-path" "${private_interface_file} " )
657657 endif ()
658658
659+ if (SWIFT_STDLIB_EMIT_API_DESCRIPTORS AND NOT SWIFTFILE_IS_FRAGILE)
660+ set (api_descriptor_file "${module_base} .api.json" )
661+ list (APPEND swift_module_flags
662+ "-emit-api-descriptor-path" "${api_descriptor_file} " )
663+ endif ()
664+
659665 if (NOT SWIFTFILE_IS_STDLIB_CORE)
660666 list (APPEND swift_module_flags
661667 "-Xfrontend" "-experimental-skip-non-inlinable-function-bodies" )
@@ -714,6 +720,13 @@ function(_compile_swift_files
714720 set (maccatalyst_private_interface_file)
715721 endif ()
716722
723+ if (SWIFT_STDLIB_EMIT_API_DESCRIPTORS AND NOT SWIFTFILE_IS_FRAGILE)
724+ set (maccatalyst_api_descriptor_file "${maccatalyst_module_base} .api.json" )
725+ list (APPEND maccatalyst_module_outputs "${maccatalyst_api_descriptor_file} " )
726+ else ()
727+ set (maccatalyst_api_descriptor_file)
728+ endif ()
729+
717730 swift_install_in_component(DIRECTORY ${maccatalyst_specific_module_dir}
718731 DESTINATION "lib${LLVM_LIBDIR_SUFFIX} /swift/${maccatalyst_library_subdir} "
719732 COMPONENT "${SWIFTFILE_INSTALL_IN_COMPONENT} "
@@ -737,6 +750,9 @@ function(_compile_swift_files
737750 list (APPEND module_outputs "${interface_file} " "${private_interface_file} " )
738751 list (APPEND module_outputs_static "${interface_file_static} " "${private_interface_file_static} " )
739752 endif ()
753+ if (api_descriptor_file)
754+ list (APPEND module_outputs "${api_descriptor_file} " )
755+ endif ()
740756
741757 swift_install_in_component(DIRECTORY "${specific_module_dir} "
742758 DESTINATION "lib${LLVM_LIBDIR_SUFFIX} /swift/${library_subdir} "
@@ -856,6 +872,14 @@ function(_compile_swift_files
856872 list (REMOVE_AT maccatalyst_swift_module_flags ${old_interface_file_index} )
857873 endif ()
858874
875+ # Remove original api descriptor
876+ list (FIND maccatalyst_swift_module_flags "${api_descriptor_file} " api_descriptor_file_index)
877+ if (NOT api_descriptor_file_index EQUAL -1)
878+ list (INSERT maccatalyst_swift_module_flags ${api_descriptor_file_index} "${maccatalyst_api_descriptor_file} " )
879+ math (EXPR old_api_descriptor_file_index "${api_descriptor_file_index} + 1" )
880+ list (REMOVE_AT maccatalyst_swift_module_flags ${old_api_descriptor_file_index} )
881+ endif ()
882+
859883 # We still need to change the main swift flags
860884 # so we can use the correct modules
861885 # when building for macOS
0 commit comments