Skip to content

Commit d95146e

Browse files
committed
Plumb additionalFileRules from Workspace to TargetSourcesBuilder
Also fixes a new warning. <rdar://problem/56328921> <rdar://problem/56328927>
1 parent 842c9e8 commit d95146e

File tree

7 files changed

+17
-5
lines changed

7 files changed

+17
-5
lines changed

Sources/PackageGraph/PackageGraphLoader.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ public struct PackageGraphLoader {
6363
public func load(
6464
root: PackageGraphRoot,
6565
config: SwiftPMConfig = SwiftPMConfig(),
66+
additionalFileRules: [FileRuleDescription] = [],
6667
externalManifests: [Manifest],
6768
requiredDependencies: Set<PackageReference> = [],
6869
unsafeAllowedPackages: Set<PackageReference> = [],

Sources/PackageLoading/PackageBuilder.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,9 @@ public final class PackageBuilder {
203203
/// Create the special REPL product for this package.
204204
private let createREPLProduct: Bool
205205

206+
/// The additionla file detection rules.
207+
private let additionalFileRules: [FileRuleDescription]
208+
206209
/// Create a builder for the given manifest and package `path`.
207210
///
208211
/// - Parameters:
@@ -216,6 +219,7 @@ public final class PackageBuilder {
216219
public init(
217220
manifest: Manifest,
218221
path: AbsolutePath,
222+
additionalFileRules: [FileRuleDescription] = [],
219223
fileSystem: FileSystem = localFileSystem,
220224
diagnostics: DiagnosticsEngine,
221225
isRootPackage: Bool,
@@ -225,6 +229,7 @@ public final class PackageBuilder {
225229
self.isRootPackage = isRootPackage
226230
self.manifest = manifest
227231
self.packagePath = path
232+
self.additionalFileRules = additionalFileRules
228233
self.fileSystem = fileSystem
229234
self.diagnostics = diagnostics
230235
self.shouldCreateMultipleTestProducts = shouldCreateMultipleTestProducts
@@ -659,6 +664,7 @@ public final class PackageBuilder {
659664
packagePath: packagePath,
660665
target: manifestTarget,
661666
path: potentialModule.path,
667+
additionalFileRules: additionalFileRules,
662668
extraExcludes: [publicHeadersPath],
663669
toolsVersion: manifest.toolsVersion,
664670
fs: fileSystem,

Sources/PackageLoading/TargetSourcesBuilder.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public struct TargetSourcesBuilder {
4848
packagePath: AbsolutePath,
4949
target: TargetDescription,
5050
path: AbsolutePath,
51-
rules: [FileRuleDescription] = [],
51+
additionalFileRules: [FileRuleDescription] = [],
5252
extraExcludes: [AbsolutePath] = [],
5353
toolsVersion: ToolsVersion = .currentToolsVersion,
5454
fs: FileSystem = localFileSystem,
@@ -59,7 +59,7 @@ public struct TargetSourcesBuilder {
5959
self.target = target
6060
self.diags = diags
6161
self.targetPath = path
62-
self.rules = FileRuleDescription.builtinRules + rules
62+
self.rules = FileRuleDescription.builtinRules + additionalFileRules
6363
self.toolsVersion = toolsVersion
6464
self.fs = fs
6565
let excludedPaths = target.exclude.map{ path.appending(RelativePath($0)) }

Sources/Workspace/Workspace.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,8 @@ public class Workspace {
335335

336336
fileprivate var resolvedFileWatcher: ResolvedFileWatcher?
337337

338+
fileprivate let additionalFileRules: [FileRuleDescription]
339+
338340
/// Typealias for dependency resolver we use in the workspace.
339341
fileprivate typealias PackageDependencyResolver = DependencyResolver
340342
fileprivate typealias PubgrubResolver = PubgrubDependencyResolver
@@ -364,6 +366,7 @@ public class Workspace {
364366
config: SwiftPMConfig = SwiftPMConfig(),
365367
fileSystem: FileSystem = localFileSystem,
366368
repositoryProvider: RepositoryProvider = GitRepositoryProvider(),
369+
additionalFileRules: [FileRuleDescription] = [],
367370
isResolverPrefetchingEnabled: Bool = false,
368371
enablePubgrubResolver: Bool = false,
369372
skipUpdate: Bool = false,
@@ -381,6 +384,7 @@ public class Workspace {
381384
self.skipUpdate = skipUpdate
382385
self.enableResolverTrace = enableResolverTrace
383386
self.resolvedFile = pinsFile
387+
self.additionalFileRules = additionalFileRules
384388

385389
let repositoriesPath = self.dataPath.appending(component: "repositories")
386390
self.repositoryManager = RepositoryManager(
@@ -695,6 +699,7 @@ extension Workspace {
695699
return PackageGraphLoader().load(
696700
root: manifests.root,
697701
config: config,
702+
additionalFileRules: additionalFileRules,
698703
externalManifests: externalManifests,
699704
requiredDependencies: manifests.computePackageURLs().required,
700705
unsafeAllowedPackages: manifests.unsafeAllowedPackages(),

Tests/PackageLoadingTests/PD4LoadingTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class PackageDescription4LoadingTests: XCTestCase {
4747
{
4848
do {
4949
try loadManifestThrowing(contents, line: line, body: body)
50-
} catch ManifestParseError.invalidManifestFormat(let error) {
50+
} catch ManifestParseError.invalidManifestFormat(let error, _) {
5151
print(error)
5252
XCTFail(file: #file, line: line)
5353
} catch {

Tests/PackageLoadingTests/PD4_2LoadingTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class PackageDescription4_2LoadingTests: XCTestCase {
4646
) {
4747
do {
4848
try loadManifestThrowing(contents, line: line, body: body)
49-
} catch ManifestParseError.invalidManifestFormat(let error) {
49+
} catch ManifestParseError.invalidManifestFormat(let error, _) {
5050
print(error)
5151
XCTFail(file: #file, line: line)
5252
} catch {

Tests/PackageLoadingTests/TargetSourcesBuilderTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ class TargetSourcesBuilderTests: XCTestCase {
111111
packagePath: .root,
112112
target: target,
113113
path: .root,
114-
rules: [somethingRule],
114+
additionalFileRules: [somethingRule],
115115
toolsVersion: .v5,
116116
fs: fs,
117117
diags: diags

0 commit comments

Comments
 (0)