Packages and Modules
Target Dependencies
Targets can depend on other targets so code builds in the right order.
Build a target list
target_dependencies.swift
Replay: real traced execution (multi-file project)
let includeTests = true
let coreTarget = "Core"
let appTarget = "App"
var targets = [coreTarget, appTarget]
if includeTests {
targets.append("AppTests")
}
let buildOrder = targets.joined(separator: " -> ")
print(buildOrder)
let includeTests = false
let coreTarget = "Core"
let appTarget = "App"
var targets = [coreTarget, appTarget]
if includeTests {
targets.append("AppTests")
}
let buildOrder = targets.joined(separator: " -> ")
print(buildOrder)
includeTests ← true, coreTarget ← Core, appTarget ← App, targets ← ["Core", "App"]
1let includeTests→ true = true //@includeTests=false2let coreTarget→ Core = "Core"3let appTarget→ App = "App"4var targets→ ["Core", "App"] = [coreTargetCore, appTargetApp]if includeTests
6if includeTeststrue {7 targets["Core", "App"].append("AppTests")8}buildOrder ← Core -> App -> AppTests
10let buildOrder→ Core -> App -> AppTests = targets["Core", "App", "AppTests"].joined(separator: " -> ")1112print(buildOrderCore -> App -> AppTests)outputCore -> App -> AppTests
includeTests ← false, coreTarget ← Core, appTarget ← App, targets ← ["Core", "App"]
1let includeTests→ false = false2let coreTarget→ Core = "Core"3let appTarget→ App = "App"4var targets→ ["Core", "App"] = [coreTargetCore, appTargetApp]56if includeTests {7 targets.append("AppTests")8}910let buildOrder→ Core -> App = targets["Core", "App"].joined(separator: " -> ")1112print(buildOrderCore -> App)outputCore -> App
target dependency
A target dependency says one target needs another target's compiled code before it can build.