From f66c5a2c7ca4c7253003f98cdaa6add42f3f838a Mon Sep 17 00:00:00 2001 From: Chuck Grindel Date: Tue, 3 May 2022 15:52:43 -0600 Subject: [PATCH] Pass filePathResolver instead of referencedContainer --- tools/generator/src/Environment.swift | 2 +- .../src/Generator+CreateXCSchemes.swift | 3 ++- tools/generator/src/Generator.swift | 26 +++++++++---------- .../generator/test/CreateXCSchemesTests.swift | 11 +++++--- tools/generator/test/GeneratorTests.swift | 10 +++---- 5 files changed, 27 insertions(+), 25 deletions(-) diff --git a/tools/generator/src/Environment.swift b/tools/generator/src/Environment.swift index 72da3c6ef3..200f08599e 100644 --- a/tools/generator/src/Environment.swift +++ b/tools/generator/src/Environment.swift @@ -74,7 +74,7 @@ struct Environment { ) throws -> Void let createXCSchemes: ( - _ referencedContainer: String, + _ filePathResolver: FilePathResolver, _ pbxTargets: [TargetID: PBXNativeTarget] ) throws -> [XCScheme] diff --git a/tools/generator/src/Generator+CreateXCSchemes.swift b/tools/generator/src/Generator+CreateXCSchemes.swift index b27532c955..878206f796 100644 --- a/tools/generator/src/Generator+CreateXCSchemes.swift +++ b/tools/generator/src/Generator+CreateXCSchemes.swift @@ -4,9 +4,10 @@ import XcodeProj extension Generator { /// Creates an array of `XCScheme` entries for the specified targets. static func createXCSchemes( - referencedContainer: String, + filePathResolver: FilePathResolver, pbxTargets: [TargetID: PBXNativeTarget] ) throws -> [XCScheme] { + let referencedContainer = filePathResolver.containerReference return try pbxTargets.map { $0.1 }.map { pbxTarget in try createXCScheme( referencedContainer: referencedContainer, diff --git a/tools/generator/src/Generator.swift b/tools/generator/src/Generator.swift index cc09d31dbb..b17ea5ac4b 100644 --- a/tools/generator/src/Generator.swift +++ b/tools/generator/src/Generator.swift @@ -28,7 +28,7 @@ class Generator { let logger: Logger init( - environment: Environment = Generator.defaultEnvironment, + environment: Environment = Generator.defaultEnvironment, logger: Logger ) { self.logger = logger @@ -57,8 +57,8 @@ class Generator { ) guard let pbxProject = pbxProj.rootObject else { throw PreconditionError(message: """ -`rootObject` not set on `pbxProj` -""") + `rootObject` not set on `pbxProj` + """) } let mainGroup: PBXGroup = pbxProject.mainGroup @@ -69,21 +69,21 @@ class Generator { guard let srcTarget = targets[src] else { throw PreconditionError( message: """ -Source target "\(src)" not found in `targets` -""") + Source target "\(src)" not found in `targets` + """) } for destination in destinations { guard let destTarget = targets[destination] else { throw PreconditionError(message: """ -Destination target "\(destination)" not found in `targets` -""") + Destination target "\(destination)" not found in `targets` + """) } logger.logWarning(""" -Was unable to merge "\(srcTarget.label) \ -(\(srcTarget.configuration))" into \ -"\(destTarget.label) \ -(\(destTarget.configuration))" -""") + Was unable to merge "\(srcTarget.label) \ + (\(srcTarget.configuration))" into \ + "\(destTarget.label) \ + (\(destTarget.configuration))" + """) } } @@ -132,7 +132,7 @@ Was unable to merge "\(srcTarget.label) \ ) let schemes = try environment.createXCSchemes( - filePathResolver.containerReference, + filePathResolver, pbxTargets ) let sharedData = environment.createXCSharedData(schemes) diff --git a/tools/generator/test/CreateXCSchemesTests.swift b/tools/generator/test/CreateXCSchemesTests.swift index 7ba125ed33..4d951b3a65 100644 --- a/tools/generator/test/CreateXCSchemesTests.swift +++ b/tools/generator/test/CreateXCSchemesTests.swift @@ -5,7 +5,10 @@ import XCTest @testable import generator class CreateXCSchemesTests: XCTestCase { - let referencedContainer = "container:examples/foo/Foo.xcodeproj" + let filePathResolver = FilePathResolver( + internalDirectoryName: "rules_xcodeproj", + workspaceOutputPath: "examples/foo/Foo.xcodeproj" + ) let pbxTargetsDict: [TargetID: PBXNativeTarget] = Fixtures.pbxTargetsWithDependencies( in: Fixtures.pbxProj(), @@ -34,7 +37,7 @@ class CreateXCSchemesTests: XCTestCase { let expectedBuildConfigurationName = target.defaultBuildConfigurationName let expectedBuildableReference = try target.createBuildableReference( - referencedContainer: referencedContainer + referencedContainer: filePathResolver.containerReference ) let expectedBuildActionEntries: [XCScheme.BuildAction.Entry] = shouldExpectBuildActionEntries ? @@ -135,7 +138,7 @@ class CreateXCSchemesTests: XCTestCase { func test_createXCSchemes_WithNoTargets() throws { let schemes = try Generator.createXCSchemes( - referencedContainer: referencedContainer, + filePathResolver: filePathResolver, pbxTargets: [:] ) let expected = [XCScheme]() @@ -144,7 +147,7 @@ class CreateXCSchemesTests: XCTestCase { func test_createXCSchemes_WithTargets() throws { let schemes = try Generator.createXCSchemes( - referencedContainer: referencedContainer, + filePathResolver: filePathResolver, pbxTargets: pbxTargetsDict ) XCTAssertEqual(schemes.count, pbxTargetsDict.count) diff --git a/tools/generator/test/GeneratorTests.swift b/tools/generator/test/GeneratorTests.swift index a7e76a744c..3d9c631ec9 100644 --- a/tools/generator/test/GeneratorTests.swift +++ b/tools/generator/test/GeneratorTests.swift @@ -34,8 +34,6 @@ final class GeneratorTests: XCTestCase { internalDirectoryName: internalDirectoryName, workspaceOutputPath: workspaceOutputPath ) - let referencedContainer = filePathResolver.containerReference - let mergedTargets: [TargetID: Target] = [ "Y": Target.mock( label: "//:Y", @@ -384,24 +382,24 @@ final class GeneratorTests: XCTestCase { // MARK: createXCSchemes() struct CreateXCSchemesCalled: Equatable { - let referencedContainer: String + let filePathResolver: FilePathResolver let pbxTargets: [TargetID: PBXNativeTarget] } var createXCSchemesCalled: [CreateXCSchemesCalled] = [] func createXCSchemes( - referencedContainer: String, + filePathResolver: FilePathResolver, pbxTargets: [TargetID: PBXNativeTarget] ) throws -> [XCScheme] { createXCSchemesCalled.append(.init( - referencedContainer: referencedContainer, + filePathResolver: filePathResolver, pbxTargets: pbxTargets )) return schemes } let expectedCreateXCSchemesCalled = [CreateXCSchemesCalled( - referencedContainer: referencedContainer, + filePathResolver: filePathResolver, pbxTargets: pbxTargets )]