Skip to content

Commit

Permalink
Pass filePathResolver instead of referencedContainer
Browse files Browse the repository at this point in the history
  • Loading branch information
cgrindel committed May 3, 2022
1 parent 040ddce commit f66c5a2
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 25 deletions.
2 changes: 1 addition & 1 deletion tools/generator/src/Environment.swift
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ struct Environment {
) throws -> Void

let createXCSchemes: (
_ referencedContainer: String,
_ filePathResolver: FilePathResolver,
_ pbxTargets: [TargetID: PBXNativeTarget]
) throws -> [XCScheme]

Expand Down
3 changes: 2 additions & 1 deletion tools/generator/src/Generator+CreateXCSchemes.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
26 changes: 13 additions & 13 deletions tools/generator/src/Generator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class Generator {
let logger: Logger

init(
environment: Environment = Generator.defaultEnvironment,
environment: Environment = Generator.defaultEnvironment,
logger: Logger
) {
self.logger = logger
Expand Down Expand Up @@ -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

Expand All @@ -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))"
""")
}
}

Expand Down Expand Up @@ -132,7 +132,7 @@ Was unable to merge "\(srcTarget.label) \
)

let schemes = try environment.createXCSchemes(
filePathResolver.containerReference,
filePathResolver,
pbxTargets
)
let sharedData = environment.createXCSharedData(schemes)
Expand Down
11 changes: 7 additions & 4 deletions tools/generator/test/CreateXCSchemesTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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(),
Expand Down Expand Up @@ -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 ?
Expand Down Expand Up @@ -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]()
Expand All @@ -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)
Expand Down
10 changes: 4 additions & 6 deletions tools/generator/test/GeneratorTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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
)]

Expand Down

0 comments on commit f66c5a2

Please sign in to comment.