Skip to content

Commit 4e3a051

Browse files
authored
Merge pull request #427 from tomerd/fix/adapt-swiftpm-api
adjust SwiftPMWorkspace to latest SwiftPM APIs
2 parents bcfadd4 + 10b14fb commit 4e3a051

File tree

1 file changed

+22
-13
lines changed

1 file changed

+22
-13
lines changed

Sources/SKSwiftPMWorkspace/SwiftPMWorkspace.swift

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import PackageModel
2323
import SourceControl
2424
import SKCore
2525
import SKSupport
26+
import TSCBasic
2627
import Workspace
2728
import Dispatch
2829
import struct Foundation.URL
@@ -85,18 +86,25 @@ public final class SwiftPMWorkspace {
8586
let destination = try Destination.hostDestination(destinationToolchainBinDir)
8687
let toolchain = try UserToolchain(destination: destination)
8788

88-
let buildPath: AbsolutePath = buildSetup.path ?? packageRoot.appending(component: ".build")
89+
var location = Workspace.Location(forRootPackage: packageRoot, fileSystem: fileSystem)
90+
if let customWorkingDirectory = buildSetup.path {
91+
location.workingDirectory = customWorkingDirectory
92+
}
8993

90-
let workspaceConfiguration = try Workspace.Configuration(path: packageRoot.appending(components: ".swiftpm", "config"), fs: fileSystem)
94+
// since we are customizing the workspace location, we need to explicitly pass the mirrors configuration
95+
let mirrorsConfiguration = try Workspace.Configuration.Mirrors(
96+
forRootPackage: packageRoot,
97+
sharedMirrorFile: location.sharedMirrorsConfigurationFile,
98+
fileSystem: fileSystem
99+
)
91100

92-
self.workspace = Workspace(
93-
dataPath: buildPath,
94-
editablesPath: packageRoot.appending(component: "Packages"),
95-
pinsFile: packageRoot.appending(component: "Package.resolved"),
96-
manifestLoader: ManifestLoader(manifestResources: toolchain.manifestResources, cacheDir: buildPath),
97-
config: workspaceConfiguration,
101+
self.workspace = try Workspace(
98102
fileSystem: fileSystem,
99-
skipUpdate: true)
103+
location: location,
104+
mirrors: mirrorsConfiguration.mirrors,
105+
customManifestLoader: ManifestLoader(toolchain: toolchain.configuration, cacheDir: location.workingDirectory),
106+
resolverUpdateEnabled: false
107+
)
100108

101109
let triple = toolchain.triple
102110

@@ -109,10 +117,11 @@ public final class SwiftPMWorkspace {
109117
}
110118

111119
self.buildParameters = BuildParameters(
112-
dataPath: buildPath.appending(component: triple.tripleString),
113-
configuration: buildConfiguration,
114-
toolchain: toolchain,
115-
flags: buildSetup.flags)
120+
dataPath: location.workingDirectory.appending(component: triple.tripleString),
121+
configuration: buildConfiguration,
122+
toolchain: toolchain,
123+
flags: buildSetup.flags
124+
)
116125

117126
self.packageGraph = try PackageGraph(rootPackages: [], dependencies: [])
118127

0 commit comments

Comments
 (0)