Skip to content

Commit 2afeca4

Browse files
committed
Include host triple targets in ResolvedPackage
Modified `ResolvedModule` build triples were not reflected in `ResolvedPackage`, which meant those modules aren't included in the build graph. Verified with `swift-foundation` and `swift-testing` packages. Resolves #7479.
1 parent 4f83c6d commit 2afeca4

File tree

7 files changed

+18
-14
lines changed

7 files changed

+18
-14
lines changed

Sources/Basics/Errors.swift

+1-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ public struct InternalError: Error {
2121
private let description: String
2222
public init(_ description: String) {
2323
assertionFailure(description)
24-
self
25-
.description =
24+
self.description =
2625
"Internal error. Please file a bug at https://github.com/apple/swift-package-manager/issues with this info. \(description)"
2726
}
2827
}

Sources/Build/BuildDescription/SwiftTargetBuildDescription.swift

+3-2
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,10 @@ package final class SwiftTargetBuildDescription {
6565
/// Path to the bundle generated for this module (if any).
6666
var bundlePath: AbsolutePath? {
6767
if let bundleName = target.underlying.potentialBundleName, needsResourceBundle {
68-
return self.defaultBuildParameters.bundlePath(named: bundleName)
68+
let suffix = self.defaultBuildParameters.suffix(triple: self.target.buildTriple)
69+
return self.defaultBuildParameters.bundlePath(named: bundleName + suffix)
6970
} else {
70-
return .none
71+
return nil
7172
}
7273
}
7374

Sources/Build/BuildManifest/LLBuildManifestBuilder+Resources.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ extension LLBuildManifestBuilder {
4545
outputs.append(output)
4646
}
4747

48-
let cmdName = target.target.getLLBuildResourcesCmdName(config: target.buildParameters.buildConfig)
48+
let cmdName = target.target.getLLBuildResourcesCmdName(buildParameters: target.buildParameters)
4949
self.manifest.addPhonyCmd(name: cmdName, inputs: outputs, outputs: [.virtual(cmdName)])
5050

5151
return .virtual(cmdName)

Sources/Build/BuildManifest/LLBuildManifestBuilder.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -325,8 +325,8 @@ extension ResolvedModule {
325325
"\(self.name)-\(buildParameters.buildConfig)\(buildParameters.suffix(triple: self.buildTriple)).module"
326326
}
327327

328-
package func getLLBuildResourcesCmdName(config: String) -> String {
329-
"\(self.name)-\(config).module-resources"
328+
package func getLLBuildResourcesCmdName(buildParameters: BuildParameters) -> String {
329+
"\(self.name)-\(buildParameters.buildConfig)\(buildParameters.suffix(triple: self.buildTriple)).module-resources"
330330
}
331331
}
332332

Sources/Build/BuildPlan/BuildPlan.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -699,7 +699,7 @@ extension Basics.Diagnostic {
699699
extension BuildParameters {
700700
/// Returns a named bundle's path inside the build directory.
701701
func bundlePath(named name: String) -> AbsolutePath {
702-
buildPath.appending(component: name + self.triple.nsbundleExtension)
702+
self.buildPath.appending(component: name + self.triple.nsbundleExtension)
703703
}
704704
}
705705

Sources/PackageGraph/ModulesGraph+Loading.swift

+8-4
Original file line numberDiff line numberDiff line change
@@ -1050,13 +1050,17 @@ private final class ResolvedPackageBuilder: ResolvedBuilder<ResolvedPackage> {
10501050
}
10511051

10521052
override func constructImpl() throws -> ResolvedPackage {
1053-
return ResolvedPackage(
1053+
let products = try self.products.map { try $0.construct() }
1054+
var targets = products.reduce(into: IdentifiableSet()) { $0.formUnion($1.targets) }
1055+
try targets.formUnion(self.targets.map { try $0.construct() })
1056+
1057+
return try ResolvedPackage(
10541058
underlying: self.package,
10551059
defaultLocalization: self.defaultLocalization,
10561060
supportedPlatforms: self.supportedPlatforms,
1057-
dependencies: try self.dependencies.map{ try $0.construct() },
1058-
targets: try self.targets.map{ try $0.construct() },
1059-
products: try self.products.map{ try $0.construct() },
1061+
dependencies: self.dependencies.map{ try $0.construct() },
1062+
targets: targets,
1063+
products: products,
10601064
registryMetadata: self.registryMetadata,
10611065
platformVersionProvider: self.platformVersionProvider
10621066
)

Sources/PackageGraph/Resolution/ResolvedPackage.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public struct ResolvedPackage {
3434
public let underlying: Package
3535

3636
/// The targets contained in the package.
37-
public let targets: [ResolvedModule]
37+
public let targets: IdentifiableSet<ResolvedModule>
3838

3939
/// The products produced by the package.
4040
public let products: [ResolvedProduct]
@@ -58,7 +58,7 @@ public struct ResolvedPackage {
5858
defaultLocalization: String?,
5959
supportedPlatforms: [SupportedPlatform],
6060
dependencies: [ResolvedPackage],
61-
targets: [ResolvedModule],
61+
targets: IdentifiableSet<ResolvedModule>,
6262
products: [ResolvedProduct],
6363
registryMetadata: RegistryReleaseMetadata?,
6464
platformVersionProvider: PlatformVersionProvider

0 commit comments

Comments
 (0)