Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Sources/Basics/FileSystem/AbsolutePath.swift
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ extension AbsolutePath {
}

/// Returns the basename dropping any possible extension.
public func basenameWithoutAnyExtension() -> String {
public var basenameWithoutAnyExtension: String {
var basename = self.basename
if let index = basename.firstIndex(of: ".") {
basename.removeSubrange(index ..< basename.endIndex)
Expand Down Expand Up @@ -320,7 +320,7 @@ extension AbsolutePath {
}

extension AbsolutePath {
public func escapedPathString() -> String {
public var escapedPathString: String {
self.pathString.replacingOccurrences(of: "\\", with: "\\\\")
}
}
Expand Down
12 changes: 6 additions & 6 deletions Sources/Build/BuildDescription/ProductBuildDescription.swift
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ public final class ProductBuildDescription: SPMBuildCore.ProductBuildDescription
args += try self.buildParameters.targetTripleArgs(for: self.product.targets[0])

// Add arguments from declared build settings.
args += self.buildSettingsFlags()
args += self.buildSettingsFlags

// Add AST paths to make the product debuggable. This array is only populated when we're
// building for Darwin in debug configuration.
Expand Down Expand Up @@ -325,19 +325,19 @@ public final class ProductBuildDescription: SPMBuildCore.ProductBuildDescription
}

/// Returns the build flags from the declared build settings.
private func buildSettingsFlags() -> [String] {
private var buildSettingsFlags: [String] {
var flags: [String] = []

// Linked libraries.
let libraries = OrderedSet(staticTargets.reduce([]) {
$0 + buildParameters.createScope(for: $1).evaluate(.LINK_LIBRARIES)
let libraries = OrderedSet(self.staticTargets.reduce([]) {
$0 + self.buildParameters.createScope(for: $1).evaluate(.LINK_LIBRARIES)
})
flags += libraries.map { "-l" + $0 }

// Linked frameworks.
if self.buildParameters.targetTriple.supportsFrameworks {
let frameworks = OrderedSet(staticTargets.reduce([]) {
$0 + buildParameters.createScope(for: $1).evaluate(.LINK_FRAMEWORKS)
let frameworks = OrderedSet(self.staticTargets.reduce([]) {
$0 + self.buildParameters.createScope(for: $1).evaluate(.LINK_FRAMEWORKS)
})
flags += frameworks.flatMap { ["-framework", $0] }
}
Expand Down
2 changes: 1 addition & 1 deletion Sources/Build/BuildOperation.swift
Original file line number Diff line number Diff line change
Expand Up @@ -669,7 +669,7 @@ public final class BuildOperation: PackageStructureDelegate, SPMBuildCore.BuildS

public func packageStructureChanged() -> Bool {
do {
_ = try plan()
_ = try self.plan()
}
catch Diagnostics.fatalError {
return false
Expand Down
26 changes: 14 additions & 12 deletions Sources/PackageFingerprint/FilePackageFingerprintStorage.swift
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ public struct FilePackageFingerprintStorage: PackageFingerprintStorage {
}

private func loadFromDisk(reference: FingerprintReference) throws -> PackageFingerprints {
let path = try self.directoryPath.appending(component: reference.fingerprintsFilename())
let path = try self.directoryPath.appending(component: reference.fingerprintsFilename)

guard self.fileSystem.exists(path) else {
return .init()
Expand All @@ -185,7 +185,7 @@ public struct FilePackageFingerprintStorage: PackageFingerprintStorage {
}

let buffer = try StorageModel.encode(packageFingerprints: fingerprints, encoder: self.encoder)
let path = try self.directoryPath.appending(component: reference.fingerprintsFilename())
let path = try self.directoryPath.appending(component: reference.fingerprintsFilename)
try self.fileSystem.writeFileContents(path, data: buffer)
}

Expand Down Expand Up @@ -382,25 +382,27 @@ extension Fingerprint.ContentType {
}

protocol FingerprintReference {
func fingerprintsFilename() throws -> String
var fingerprintsFilename: String { get throws }
}

extension PackageIdentity: FingerprintReference {
func fingerprintsFilename() -> String {
var fingerprintsFilename: String {
"\(self.description).json"
}
}

extension PackageReference: FingerprintReference {
func fingerprintsFilename() throws -> String {
guard case .remoteSourceControl(let sourceControlURL) = self.kind else {
throw StringError("Package kind [\(self.kind)] does not support fingerprints")
var fingerprintsFilename: String {
get throws {
guard case .remoteSourceControl(let sourceControlURL) = self.kind else {
throw StringError("Package kind [\(self.kind)] does not support fingerprints")
}

let canonicalLocation = CanonicalPackageLocation(sourceControlURL.absoluteString)
// Cannot use hashValue because it is not consistent across executions
let locationHash = canonicalLocation.description.sha256Checksum.prefix(8)
return "\(self.identity.description)-\(locationHash).json"
}

let canonicalLocation = CanonicalPackageLocation(sourceControlURL.absoluteString)
// Cannot use hashValue because it is not consistent across executions
let locationHash = canonicalLocation.description.sha256Checksum.prefix(8)
return "\(self.identity.description)-\(locationHash).json"
}
}

Expand Down
4 changes: 2 additions & 2 deletions Sources/PackageGraph/GraphLoadingNode.swift
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ public struct GraphLoadingNode: Equatable, Hashable {
}

/// Returns the dependencies required by this node.
internal func requiredDependencies() -> [PackageDependency] {
return manifest.dependenciesRequired(for: productFilter)
internal var requiredDependencies: [PackageDependency] {
return self.manifest.dependenciesRequired(for: self.productFilter)
}

public func hash(into hasher: inout Hasher) {
Expand Down
14 changes: 7 additions & 7 deletions Sources/PackageGraph/ModuleAliasTracker.swift
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ class ModuleAliasTracker {
func trackTargetsPerProduct(product: Product,
package: PackageIdentity) {
let targetDeps = product.targets.map{$0.dependencies}.flatMap{$0}
var allTargetDeps = product.targets.map{$0.recursiveDependentTargets().map{$0.dependencies}}.flatMap{$0}.flatMap{$0}
var allTargetDeps = product.targets.map{$0.recursiveDependentTargets.map{$0.dependencies}}.flatMap{$0}.flatMap{$0}
allTargetDeps.append(contentsOf: targetDeps)
for dep in allTargetDeps {
if case let .product(depRef, _) = dep {
Expand Down Expand Up @@ -158,7 +158,7 @@ class ModuleAliasTracker {
}

if let curDirectTargets = productToDirectTargets[productID] {
var relevantTargets = curDirectTargets.map{$0.recursiveDependentTargets()}.flatMap{$0}
var relevantTargets = curDirectTargets.map{$0.recursiveDependentTargets}.flatMap{$0}
relevantTargets.append(contentsOf: curDirectTargets)

for relTarget in relevantTargets {
Expand Down Expand Up @@ -198,7 +198,7 @@ class ModuleAliasTracker {
}

if let curDirectTargets = productToDirectTargets[productID] {
let depTargets = curDirectTargets.map{$0.recursiveDependentTargets()}.flatMap{$0}
let depTargets = curDirectTargets.map{$0.recursiveDependentTargets}.flatMap{$0}
let depTargetAliases = toDictionary(depTargets.compactMap{$0.moduleAliases})
let depChildTargets = dependencyProductTargets(of: depTargets)
let depChildAliases = toDictionary(depChildTargets.compactMap{$0.moduleAliases})
Expand Down Expand Up @@ -255,7 +255,7 @@ class ModuleAliasTracker {
let unAliased = productTargets.contains{$0.moduleAliases == nil}
if unAliased {
for target in productTargets {
let depAliases = target.recursiveDependentTargets().compactMap{$0.moduleAliases}.flatMap{$0}
let depAliases = target.recursiveDependentTargets.compactMap{$0.moduleAliases}.flatMap{$0}
for (key, alias) in depAliases {
target.addModuleAlias(for: key, as: alias)
}
Expand Down Expand Up @@ -412,17 +412,17 @@ class ModuleAliasModel {

extension Target {
func dependsOn(productID: String) -> Bool {
return dependencies.contains { dep in
return self.dependencies.contains { dep in
if case let .product(prodRef, _) = dep {
return prodRef.identity == productID
}
return false
}
}

func recursiveDependentTargets() -> [Target] {
var recursiveDependentTargets: [Target] {
var list = [Target]()
var nextDeps = dependencies
var nextDeps = self.dependencies
while !nextDeps.isEmpty {
let nextTargets = nextDeps.compactMap{$0.target}
list.append(contentsOf: nextTargets)
Expand Down
4 changes: 2 additions & 2 deletions Sources/PackageGraph/PackageGraph+Loading.swift
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ extension PackageGraph {
manifestMap[$0.key] = ($0.value, fileSystem)
}
let successors: (GraphLoadingNode) -> [GraphLoadingNode] = { node in
node.requiredDependencies().compactMap{ dependency in
node.requiredDependencies.compactMap{ dependency in
return manifestMap[dependency.identity].map { (manifest, fileSystem) in
GraphLoadingNode(identity: dependency.identity, manifest: manifest, productFilter: dependency.productFilter, fileSystem: fileSystem)
}
Expand Down Expand Up @@ -272,7 +272,7 @@ private func createResolvedPackages(

// Establish the manifest-declared package dependencies.
package.manifest.dependenciesRequired(for: packageBuilder.productFilter).forEach { dependency in
let dependencyPackageRef = dependency.createPackageRef()
let dependencyPackageRef = dependency.packageRef

// Otherwise, look it up by its identity.
if let resolvedPackage = packagesByIdentity[dependency.identity] {
Expand Down
2 changes: 1 addition & 1 deletion Sources/PackageGraph/PackageGraphRoot.swift
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public struct PackageGraphRoot {

let depend = try dependencies.map{
PackageContainerConstraint(
package: $0.createPackageRef(),
package: $0.packageRef,
requirement: try $0.toConstraintRequirement(),
products: $0.productFilter
)
Expand Down
4 changes: 2 additions & 2 deletions Sources/PackageGraph/PackageModel+Extensions.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import PackageModel

extension PackageDependency {
/// Create the package reference object for the dependency.
public func createPackageRef() -> PackageReference {
public var packageRef: PackageReference {
let packageKind: PackageReference.Kind
switch self {
case .fileSystem(let settings):
Expand All @@ -38,7 +38,7 @@ extension Manifest {
public func dependencyConstraints(productFilter: ProductFilter) throws -> [PackageContainerConstraint] {
return try self.dependenciesRequired(for: productFilter).map({
return PackageContainerConstraint(
package: $0.createPackageRef(),
package: $0.packageRef,
requirement: try $0.toConstraintRequirement(),
products: $0.productFilter)
})
Expand Down
Loading