Skip to content

Commit f368a73

Browse files
committed
We link against SwiftBuild (and not SWBProjectModel)
1 parent 7ac0669 commit f368a73

6 files changed

+88
-88
lines changed

Sources/SwiftBuildSupport/PackagePIFBuilder+Helpers.swift

+17-17
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ import struct PackageGraph.ResolvedProduct
5555

5656
import func PackageLoading.pkgConfigArgs
5757

58-
import enum SWBProjectModel.PIF
58+
import enum SwiftBuild.PIF
5959

6060
// MARK: - PIF GUID Helpers
6161

@@ -139,8 +139,8 @@ extension PackageModel.Package {
139139
self.manifest.displayName
140140
}
141141

142-
var packageBaseBuildSettings: SWBProjectModel.PIF.BuildSettings {
143-
var settings = SWBProjectModel.PIF.BuildSettings()
142+
var packageBaseBuildSettings: SwiftBuild.PIF.BuildSettings {
143+
var settings = SwiftBuild.PIF.BuildSettings()
144144
settings.SDKROOT = "auto"
145145
settings.SDK_VARIANT = "auto"
146146

@@ -203,14 +203,14 @@ extension PackageModel.Platform {
203203
}
204204

205205
extension Sequence<PackageModel.PackageCondition> {
206-
func toPlatformFilter(toolsVersion: ToolsVersion) -> Set<SWBProjectModel.PIF.PlatformFilter> {
207-
let pifPlatforms = self.flatMap { packageCondition -> [SWBProjectModel.PIF.BuildSettings.Platform] in
206+
func toPlatformFilter(toolsVersion: ToolsVersion) -> Set<SwiftBuild.PIF.PlatformFilter> {
207+
let pifPlatforms = self.flatMap { packageCondition -> [SwiftBuild.PIF.BuildSettings.Platform] in
208208
guard let platforms = packageCondition.platformsCondition?.platforms else {
209209
return []
210210
}
211211

212-
var pifPlatformsForCondition: [SWBProjectModel.PIF.BuildSettings.Platform] = platforms
213-
.map { SWBProjectModel.PIF.BuildSettings.Platform(from: $0) }
212+
var pifPlatformsForCondition: [SwiftBuild.PIF.BuildSettings.Platform] = platforms
213+
.map { SwiftBuild.PIF.BuildSettings.Platform(from: $0) }
214214

215215
// Treat catalyst like macOS for backwards compatibility with older tools versions.
216216
if pifPlatformsForCondition.contains(.macOS), toolsVersion < ToolsVersion.v5_5 {
@@ -313,7 +313,7 @@ extension PackageGraph.ResolvedPackage {
313313
}
314314

315315
extension PackageGraph.ResolvedPackage {
316-
public var packageBaseBuildSettings: SWBProjectModel.PIF.BuildSettings {
316+
public var packageBaseBuildSettings: SwiftBuild.PIF.BuildSettings {
317317
self.underlying.packageBaseBuildSettings
318318
}
319319
}
@@ -793,12 +793,12 @@ extension TSCUtility.Version {
793793
// MARK: - Swift Build PIF Helpers
794794

795795
/// Helpers for building custom PIF targets by `PIFPackageBuilder` clients.
796-
extension SWBProjectModel.PIF.Project {
796+
extension SwiftBuild.PIF.Project {
797797
@discardableResult
798798
public func addTarget(
799799
packageProductName: String,
800-
productType: SWBProjectModel.PIF.Target.ProductType
801-
) throws -> SWBProjectModel.PIF.Target {
800+
productType: SwiftBuild.PIF.Target.ProductType
801+
) throws -> SwiftBuild.PIF.Target {
802802
let pifTarget = try self.addTargetThrowing(
803803
id: PIFPackageBuilder.targetGUID(forProductName: packageProductName),
804804
productType: productType,
@@ -811,8 +811,8 @@ extension SWBProjectModel.PIF.Project {
811811
@discardableResult
812812
public func addTarget(
813813
packageModuleName: String,
814-
productType: SWBProjectModel.PIF.Target.ProductType
815-
) throws -> SWBProjectModel.PIF.Target {
814+
productType: SwiftBuild.PIF.Target.ProductType
815+
) throws -> SwiftBuild.PIF.Target {
816816
let pifTarget = try self.addTargetThrowing(
817817
id: PIFPackageBuilder.targetGUID(forModuleName: packageModuleName),
818818
productType: productType,
@@ -823,7 +823,7 @@ extension SWBProjectModel.PIF.Project {
823823
}
824824
}
825825

826-
extension SWBProjectModel.PIF.BuildSettings {
826+
extension SwiftBuild.PIF.BuildSettings {
827827
/// Internal helper function that appends list of string values to a declaration.
828828
/// If a platform is specified, then the values are appended to the `platformSpecificSettings`,
829829
/// otherwise they are appended to the platform-neutral settings.
@@ -895,7 +895,7 @@ extension SWBProjectModel.PIF.BuildSettings {
895895
}
896896
}
897897

898-
extension SWBProjectModel.PIF.BuildSettings.Platform {
898+
extension SwiftBuild.PIF.BuildSettings.Platform {
899899
init(from platform: PackageModel.Platform) {
900900
self = switch platform {
901901
case .macOS: .macOS
@@ -915,7 +915,7 @@ extension SWBProjectModel.PIF.BuildSettings.Platform {
915915
}
916916
}
917917

918-
extension SWBProjectModel.PIF.BuildSettings {
918+
extension SwiftBuild.PIF.BuildSettings {
919919
/// Configure necessary settings for a dynamic library/framework.
920920
mutating func configureDynamicSettings(
921921
productName: String,
@@ -959,7 +959,7 @@ extension SWBProjectModel.PIF.BuildSettings {
959959
}
960960
}
961961

962-
extension SWBProjectModel.PIF.BuildSettings.Declaration {
962+
extension SwiftBuild.PIF.BuildSettings.Declaration {
963963
init(from declaration: PackageModel.BuildSettings.Declaration) {
964964
self = switch declaration {
965965
// Swift.

Sources/SwiftBuildSupport/PackagePIFBuilder+Plugins.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import let Basics.localFileSystem
1717
import enum Basics.Sandbox
1818
import struct Basics.SourceControlURL
1919

20-
import enum SWBProjectModel.PIF
20+
import enum SwiftBuild.PIF
2121

2222
extension PIFPackageBuilder {
2323
/// Contains all of the information resulting from applying a build tool plugin to a package target thats affect how

Sources/SwiftBuildSupport/PackagePIFBuilder.swift

+22-22
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import struct PackageGraph.ModulesGraph
3030
import struct PackageGraph.ResolvedModule
3131
import struct PackageGraph.ResolvedPackage
3232

33-
import enum SWBProjectModel.PIF
33+
import enum SwiftBuild.PIF
3434

3535
/// A builder for generating the PIF object from a package.
3636
public final class PIFPackageBuilder {
@@ -41,12 +41,12 @@ public final class PIFPackageBuilder {
4141
let packageManifest: PackageModel.Manifest // FIXME: Can't we just use `package.manifest` instead? —— Paulo
4242

4343
/// The built PIF project object.
44-
public var pifProject: SWBProjectModel.PIF.Project {
44+
public var pifProject: SwiftBuild.PIF.Project {
4545
assert(self._pifProject != nil, "Call build() method to build the PIF first")
4646
return self._pifProject!
4747
}
4848

49-
private var _pifProject: SWBProjectModel.PIF.Project?
49+
private var _pifProject: SwiftBuild.PIF.Project?
5050

5151
/// Scope for logging informational debug messages (intended for developers, not end users).
5252
let observabilityScope: ObservabilityScope
@@ -85,7 +85,7 @@ public final class PIFPackageBuilder {
8585

8686
/// For executables — only executables for now — we check to see if there is a custom package product type
8787
/// provider that can provide this information.
88-
func customProductType(forExecutable product: PackageModel.Product) -> SWBProjectModel.PIF.Target.ProductType?
88+
func customProductType(forExecutable product: PackageModel.Product) -> SwiftBuild.PIF.Target.ProductType?
8989

9090
/// Returns all *device family* IDs for all SDK variants.
9191
func deviceFamilyIDs() -> Set<Int>
@@ -97,12 +97,12 @@ public final class PIFPackageBuilder {
9797
var isPluginExecutionSandboxingDisabled: Bool { get }
9898

9999
/// Hook to customize the project-wide build settings.
100-
func configureProjectBuildSettings(_ buildSettings: inout SWBProjectModel.PIF.BuildSettings)
100+
func configureProjectBuildSettings(_ buildSettings: inout SwiftBuild.PIF.BuildSettings)
101101

102102
/// Hook to customize source module build settings.
103103
func configureSourceModuleBuildSettings(
104104
sourceModule: PackageGraph.ResolvedModule,
105-
settings: inout SWBProjectModel.PIF.BuildSettings
105+
settings: inout SwiftBuild.PIF.BuildSettings
106106
)
107107

108108
/// Custom install path for the specified product, if any.
@@ -118,13 +118,13 @@ public final class PIFPackageBuilder {
118118
func customSDKOptions(forPlatform: PackageModel.Platform) -> [String]
119119

120120
/// Create additional custom PIF targets after all targets have been built.
121-
func addCustomTargets(pifProject: SWBProjectModel.PIF.Project) throws -> [PIFPackageBuilder.ModuleOrProduct]
121+
func addCustomTargets(pifProject: SwiftBuild.PIF.Project) throws -> [PIFPackageBuilder.ModuleOrProduct]
122122

123123
/// Should we suppresses the specific product dependency, updating the provided build settings if necessary?
124124
/// The specified product may be in the same package or a different one.
125125
func shouldSuppressProductDependency(
126126
product: PackageModel.Product,
127-
buildSettings: inout SWBProjectModel.PIF.BuildSettings
127+
buildSettings: inout SwiftBuild.PIF.BuildSettings
128128
) -> Bool
129129

130130
/// Should we set the install path for a dynamic library/framework?
@@ -133,8 +133,8 @@ public final class PIFPackageBuilder {
133133
/// Provides additional configuration and files for the specified library product.
134134
func configureLibraryProduct(
135135
product: PackageModel.Product,
136-
pifTarget: SWBProjectModel.PIF.Target,
137-
additionalFiles: SWBProjectModel.PIF.Group
136+
pifTarget: SwiftBuild.PIF.Target,
137+
additionalFiles: SwiftBuild.PIF.Group
138138
)
139139

140140
/// The de#tention behind this is to set a value for `watchOS`, `tvOS`, and `visionOS`
@@ -204,7 +204,7 @@ public final class PIFPackageBuilder {
204204

205205
/// Build an empty PIF project for the specified `Package`.
206206

207-
public class func buildEmptyPIF(package: PackageModel.Package) -> SWBProjectModel.PIF.Project {
207+
public class func buildEmptyPIF(package: PackageModel.Package) -> SwiftBuild.PIF.Project {
208208
self.buildEmptyPIF(
209209
id: "PACKAGE:\(package.identity)",
210210
path: package.manifest.path.pathString,
@@ -221,15 +221,15 @@ public final class PIFPackageBuilder {
221221
projectDir: String,
222222
name: String,
223223
developmentRegion: String? = nil
224-
) -> SWBProjectModel.PIF.Project {
225-
let project = SWBProjectModel.PIF.Project(
224+
) -> SwiftBuild.PIF.Project {
225+
let project = SwiftBuild.PIF.Project(
226226
id: id,
227227
path: path,
228228
projectDir: projectDir,
229229
name: name,
230230
developmentRegion: developmentRegion
231231
)
232-
let settings = SWBProjectModel.PIF.BuildSettings()
232+
let settings = SwiftBuild.PIF.BuildSettings()
233233

234234
project.addBuildConfig(name: "Debug", settings: settings)
235235
project.addBuildConfig(name: "Release", settings: settings)
@@ -238,18 +238,18 @@ public final class PIFPackageBuilder {
238238
}
239239

240240
public func buildPlaceholderPIF(id: String, path: String, projectDir: String, name: String) -> ModuleOrProduct {
241-
let project = SWBProjectModel.PIF.Project(
241+
let project = SwiftBuild.PIF.Project(
242242
id: id,
243243
path: path,
244244
projectDir: projectDir,
245245
name: name
246246
)
247-
let projectSettings = SWBProjectModel.PIF.BuildSettings()
247+
let projectSettings = SwiftBuild.PIF.BuildSettings()
248248
project.addBuildConfig(name: "Debug", settings: projectSettings)
249249
project.addBuildConfig(name: "Release", settings: projectSettings)
250250

251251
let target = project.addAggregateTarget(id: "PACKAGE-PLACEHOLDER:\(id)", name: id)
252-
let targetSettings: SWBProjectModel.PIF.BuildSettings = self.package.underlying.packageBaseBuildSettings
252+
let targetSettings: SwiftBuild.PIF.BuildSettings = self.package.underlying.packageBaseBuildSettings
253253
target.addBuildConfig(name: "Debug", settings: targetSettings)
254254
target.addBuildConfig(name: "Release", settings: targetSettings)
255255

@@ -280,7 +280,7 @@ public final class PIFPackageBuilder {
280280
public var moduleName: String?
281281
public var isDynamicLibraryVariant: Bool = false
282282

283-
public var pifTarget: SWBProjectModel.PIF.BaseTarget?
283+
public var pifTarget: SwiftBuild.PIF.BaseTarget?
284284

285285
public var indexableFileURLs: [SourceControlURL]
286286
public var headerFiles: Set<AbsolutePath>
@@ -333,7 +333,7 @@ public final class PIFPackageBuilder {
333333

334334
public var description: String { rawValue }
335335

336-
init(from pifProductType: SWBProjectModel.PIF.Target.ProductType) {
336+
init(from pifProductType: SwiftBuild.PIF.Target.ProductType) {
337337
self = switch pifProductType {
338338
case .application: .application
339339
case .staticArchive: .staticArchive
@@ -459,7 +459,7 @@ public final class PIFPackageBuilder {
459459
/// First we set those that are in common between the "Debug" and "Release" configurations, and then we set those
460460
/// that are different.
461461
private func addProjectBuildSettings(project: PackagePIFProjectBuilder) {
462-
var settings = SWBProjectModel.PIF.BuildSettings()
462+
var settings = SwiftBuild.PIF.BuildSettings()
463463
settings.PRODUCT_NAME = "$(TARGET_NAME)"
464464
settings.SUPPORTED_PLATFORMS = ["$(AVAILABLE_PLATFORMS)"]
465465
settings.SKIP_INSTALL = "YES"
@@ -508,7 +508,7 @@ public final class PIFPackageBuilder {
508508
self.delegate.configureProjectBuildSettings(&settings)
509509

510510
for (platform, platformOptions) in self.package.sdkOptions(delegate: self.delegate) {
511-
let pifPlatform = SWBProjectModel.PIF.BuildSettings.Platform(from: platform)
511+
let pifPlatform = SwiftBuild.PIF.BuildSettings.Platform(from: platform)
512512
settings.platformSpecificSettings[pifPlatform]![.SPECIALIZATION_SDK_OPTIONS]!
513513
.append(contentsOf: platformOptions)
514514
}
@@ -591,7 +591,7 @@ extension PIFPackageBuilder.ModuleOrProduct {
591591
type moduleOrProductType: PIFPackageBuilder.ModuleOrProductType,
592592
name: String,
593593
moduleName: String?,
594-
pifTarget: SWBProjectModel.PIF.BaseTarget?,
594+
pifTarget: SwiftBuild.PIF.BaseTarget?,
595595
indexableFileURLs: [SourceControlURL] = [],
596596
headerFiles: Set<AbsolutePath> = [],
597597
linkedPackageBinaries: [PIFPackageBuilder.LinkedPackageBinary] = [],

Sources/SwiftBuildSupport/PackagePIFProjectBuilder+Modules.swift

+13-13
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import class PackageModel.SystemLibraryModule
2525
import struct PackageGraph.ResolvedModule
2626
import struct PackageGraph.ResolvedPackage
2727

28-
import enum SWBProjectModel.PIF
28+
import enum SwiftBuild.PIF
2929

3030
/// Extension to create PIF **modules** for a given package.
3131
extension PackagePIFProjectBuilder {
@@ -43,7 +43,7 @@ extension PackagePIFProjectBuilder {
4343
)
4444
log(.debug, "created \(type(of: pluginPifTarget)) '\(pluginPifTarget.id)' with name '\(pluginPifTarget.name)'")
4545

46-
var buildSettings: SWBProjectModel.PIF.BuildSettings = self.package.underlying.packageBaseBuildSettings
46+
var buildSettings: SwiftBuild.PIF.BuildSettings = self.package.underlying.packageBaseBuildSettings
4747

4848
// Add the dependencies.
4949
pluginModule.recursivelyTraverseDependencies { dependency in
@@ -167,8 +167,8 @@ extension PackagePIFProjectBuilder {
167167
dynamicLibraryVariant.isDynamicLibraryVariant = true
168168
self.builtModulesAndProducts.append(dynamicLibraryVariant)
169169

170-
let pifTarget = staticLibrary.pifTarget as? SWBProjectModel.PIF.Target
171-
let dynamicPifTarget = dynamicLibraryVariant.pifTarget as? SWBProjectModel.PIF.Target
170+
let pifTarget = staticLibrary.pifTarget as? SwiftBuild.PIF.Target
171+
let dynamicPifTarget = dynamicLibraryVariant.pifTarget as? SwiftBuild.PIF.Target
172172

173173
guard let pifTarget, let dynamicPifTarget else {
174174
fatalError("Could not assign dynamic PIF target")
@@ -224,7 +224,7 @@ extension PackagePIFProjectBuilder {
224224

225225
let pifTargetName: String
226226
let executableName: String
227-
let productType: SWBProjectModel.PIF.Target.ProductType
227+
let productType: SwiftBuild.PIF.Target.ProductType
228228

229229
switch desiredModuleType {
230230
case .dynamicLibrary:
@@ -321,10 +321,10 @@ extension PackagePIFProjectBuilder {
321321
}
322322

323323
// Create a set of build settings that will be imparted to any target that depends on this one.
324-
var impartedSettings = SWBProjectModel.PIF.BuildSettings()
324+
var impartedSettings = SwiftBuild.PIF.BuildSettings()
325325

326326
// Configure the target-wide build settings. The details depend on the kind of product we're building.
327-
var settings: SWBProjectModel.PIF.BuildSettings = self.package.underlying.packageBaseBuildSettings
327+
var settings: SwiftBuild.PIF.BuildSettings = self.package.underlying.packageBaseBuildSettings
328328

329329
if shouldGenerateBundleAccessor {
330330
settings.GENERATE_RESOURCE_ACCESSORS = "YES"
@@ -683,10 +683,10 @@ extension PackagePIFProjectBuilder {
683683
for (buildConfig, declarationsByPlatform) in allBuildSettings.targetSettings {
684684
for (platform, settingsByDeclaration) in declarationsByPlatform {
685685
// A `nil` platform means that the declaration applies to *all* platforms.
686-
let pifPlatform = platform.map { SWBProjectModel.PIF.BuildSettings.Platform(from: $0) }
686+
let pifPlatform = platform.map { SwiftBuild.PIF.BuildSettings.Platform(from: $0) }
687687

688688
for (declaration, stringValues) in settingsByDeclaration {
689-
let pifDeclaration = SWBProjectModel.PIF.BuildSettings.Declaration(from: declaration)
689+
let pifDeclaration = SwiftBuild.PIF.BuildSettings.Declaration(from: declaration)
690690
switch buildConfig {
691691
case .debug:
692692
debugSettings.append(values: stringValues, to: pifDeclaration, platform: pifPlatform)
@@ -700,10 +700,10 @@ extension PackagePIFProjectBuilder {
700700
// Impart the linker flags.
701701
for (platform, settingsByDeclaration) in sourceModule.allBuildSettings.impartedSettings {
702702
// A `nil` platform means that the declaration applies to *all* platforms.
703-
let pifPlatform = platform.map { SWBProjectModel.PIF.BuildSettings.Platform(from: $0) }
703+
let pifPlatform = platform.map { SwiftBuild.PIF.BuildSettings.Platform(from: $0) }
704704

705705
for (declaration, stringValues) in settingsByDeclaration {
706-
let pifDeclaration = SWBProjectModel.PIF.BuildSettings.Declaration(from: declaration)
706+
let pifDeclaration = SwiftBuild.PIF.BuildSettings.Declaration(from: declaration)
707707
impartedSettings.append(values: stringValues, to: pifDeclaration, platform: pifPlatform)
708708
}
709709
}
@@ -771,14 +771,14 @@ extension PackagePIFProjectBuilder {
771771
"created \(type(of: systemLibraryPifTarget)) '\(systemLibraryPifTarget.id)' with name '\(systemLibraryPifTarget.name)'"
772772
)
773773

774-
let settings: SWBProjectModel.PIF.BuildSettings = self.package.underlying.packageBaseBuildSettings
774+
let settings: SwiftBuild.PIF.BuildSettings = self.package.underlying.packageBaseBuildSettings
775775
let pkgConfig = try systemLibrary.pkgConfig(
776776
package: self.package,
777777
observabilityScope: pifBuilder.observabilityScope
778778
)
779779

780780
// Impart the header search path to all direct and indirect clients.
781-
var impartedSettings = SWBProjectModel.PIF.BuildSettings()
781+
var impartedSettings = SwiftBuild.PIF.BuildSettings()
782782
impartedSettings.OTHER_CFLAGS = ["-fmodule-map-file=\(systemLibrary.modulemapFileAbsolutePath)"] + pkgConfig
783783
.cFlags.prepending("$(inherited)")
784784
impartedSettings.OTHER_LDFLAGS = pkgConfig.libs.prepending("$(inherited)")

0 commit comments

Comments
 (0)