func generateFrom()

in Sources/XCRemoteCache/Commands/Swiftc/MirroredLinkingSwiftcProductsGenerator.swift [55:81]


    func generateFrom(
        artifactSwiftModuleFiles: [SwiftmoduleFileExtension: URL],
        artifactSwiftModuleObjCFile: URL
    ) throws -> SwiftcProductsGeneratorOutput {
        /// Predict moduleName from the `*.swiftmodule` artifact
        let foundSwiftmoduleFile = artifactSwiftModuleFiles[.swiftmodule]
        guard let mainSwiftmoduleFile = foundSwiftmoduleFile else {
            throw MirroredLinkingSwiftcProductsGeneratorError.missingMainSwiftmoduleFileToGenerateFrom
        }
        let moduleName = mainSwiftmoduleFile.deletingPathExtension().lastPathComponent
        let modulePathOutput = buildDir
            .appendingPathComponent("\(moduleName).swiftmodule")
            .appendingPathComponent(arch)
            .appendingPathExtension("swiftmodule")
        let objcHeaderOutput = headersDir.appendingPathComponent("\(moduleName)-Swift.h")

        let generator = DiskSwiftcProductsGenerator(
            modulePathOutput: modulePathOutput,
            objcHeaderOutput: objcHeaderOutput,
            diskCopier: diskCopier
        )

        return try generator.generateFrom(
            artifactSwiftModuleFiles: artifactSwiftModuleFiles,
            artifactSwiftModuleObjCFile: artifactSwiftModuleObjCFile
        )
    }