INNER CODE UNIT · Swift
createPreflightBuildCommands
skiptools/skip · Plugins/SkipPlugin/SkipPlugin.swift:69
func createPreflightBuildCommands(context: PluginContext, target: SourceModuleTarget) async throws -> [Command] {
let runner = try context.tool(named: skipPluginCommandName).path
let inputPaths = target.sourceFiles(withSuffix: ".swift").map { $0.path }
let outputDir = context.pluginWorkDirectory.appending(subpath: skippyOutputFolder)
return inputPaths.map { Command.buildCommand(displayName: "Skippy \(target.name): \($0.lastComponent)", executable: runner, arguments: ["skippy", "--output-suffix", skippyOuptputExtension, "-O", outputDir.string, $0.string], inputFiles: [$0], outputFiles: [$0.outputPath(in: outputDir, suffix: skippyOuptputExtension)]) }
}
func createTranspileBuildCommands(context: PluginContext, target: SourceModuleTarget) async throws -> [Command] {
//Diagnostics.remark("Skip transpile target: \(target.name)")
// we need to know the names of peer target folders in order to set up dependency links, so we need to determine the output folder structure
// output named vary dependeding on whether we are running from Xcode/xcodebuild and SwiftPM, and also changed in Swift 6:
// xcode: DERIVED/SourcePackages/plugins/skip-unit.output/SkipUnit/skipstone/SkipUnit.skipcode.json
// SwiftPM 5: PROJECT_HOME/.build/plugins/outputs/skip-unit/SkipUnit/skipstone/SkipUnit.skipcode.json
// SwiftPM 6: PROJECT_HOME/.build/plugins/outputs/skip-unit/SkipUnit/destination/skipstone/SkipUnit.skipcode.json
let outputFolder = context.pluginWorkDirectory