From aba1d82d338f74ec11f1cf7b24b0b0be1681330a Mon Sep 17 00:00:00 2001 From: fortmarek Date: Thu, 6 Feb 2025 18:58:32 +0100 Subject: [PATCH 1/2] fix: remove .xcodeproj path component from most paths --- .../XcodeGraphMapper/Mappers/Graph/XcodeGraphMapper.swift | 6 +++--- .../XcodeGraphMapper/Mappers/Schemes/XCSchemeMapper.swift | 2 +- .../MapperTests/Schemes/XCSchemeMapperTests.swift | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Sources/XcodeGraphMapper/Mappers/Graph/XcodeGraphMapper.swift b/Sources/XcodeGraphMapper/Mappers/Graph/XcodeGraphMapper.swift index 8dc56b3b..0d6615be 100644 --- a/Sources/XcodeGraphMapper/Mappers/Graph/XcodeGraphMapper.swift +++ b/Sources/XcodeGraphMapper/Mappers/Graph/XcodeGraphMapper.swift @@ -173,7 +173,7 @@ public struct XcodeGraphMapper: XcodeGraphMapping { let xcodeProj = try XcodeProj(pathString: path.pathString) let projectMapper = PBXProjectMapper() let project = try await projectMapper.map(xcodeProj: xcodeProj) - projects[path] = project + projects[path.parentDirectory] = project } return projects @@ -209,7 +209,7 @@ public struct XcodeGraphMapper: XcodeGraphMapping { for (path, project) in projects { for (name, target) in project.targets { - let sourceDependency = GraphDependency.target(name: name, path: path.parentDirectory) + let sourceDependency = GraphDependency.target(name: name, path: path) // Build edges for each target dependency let edgesAndDeps = try await target.dependencies.serialCompactMap { (dep: TargetDependency) async throws -> ( @@ -218,7 +218,7 @@ public struct XcodeGraphMapper: XcodeGraphMapping { GraphDependency ) in let graphDep = try await dep.graphDependency( - sourceDirectory: path.parentDirectory, + sourceDirectory: path, allTargetsMap: allTargetsMap, target: target ) diff --git a/Sources/XcodeGraphMapper/Mappers/Schemes/XCSchemeMapper.swift b/Sources/XcodeGraphMapper/Mappers/Schemes/XCSchemeMapper.swift index eeda5bdb..3337bad2 100644 --- a/Sources/XcodeGraphMapper/Mappers/Schemes/XCSchemeMapper.swift +++ b/Sources/XcodeGraphMapper/Mappers/Schemes/XCSchemeMapper.swift @@ -200,7 +200,7 @@ struct XCSchemeMapper: SchemeMapping { let relPath = try RelativePath(validating: relativeContainerPath) projectPath = xcworkspace.workspacePath.parentDirectory.appending(relPath) case let .project(xcodeProj): - projectPath = xcodeProj.projectPath + projectPath = xcodeProj.projectPath.parentDirectory } return TargetReference(projectPath: projectPath, name: targetName) diff --git a/Tests/XcodeGraphMapperTests/MapperTests/Schemes/XCSchemeMapperTests.swift b/Tests/XcodeGraphMapperTests/MapperTests/Schemes/XCSchemeMapperTests.swift index 600b8883..6ebc6cdf 100644 --- a/Tests/XcodeGraphMapperTests/MapperTests/Schemes/XCSchemeMapperTests.swift +++ b/Tests/XcodeGraphMapperTests/MapperTests/Schemes/XCSchemeMapperTests.swift @@ -256,7 +256,7 @@ struct XCSchemeMapperTests { // Then #expect(mappedAction.targets.count == 1) #expect(mappedAction.targets[0].name == "App") - #expect(mappedAction.targets[0].projectPath == xcodeProj.projectPath) + #expect(mappedAction.targets[0].projectPath == xcodeProj.projectPath.parentDirectory) } @Test("Handles schemes without any actions gracefully") From 5b1c86f41246c19745f11ebd3e18e7e5286f10ff Mon Sep 17 00:00:00 2001 From: fortmarek Date: Fri, 7 Feb 2025 16:55:46 +0100 Subject: [PATCH 2/2] Fix testWorkspaceGraphMultipleProjects --- .../MapperTests/Graph/GraphMapperTests.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Tests/XcodeGraphMapperTests/MapperTests/Graph/GraphMapperTests.swift b/Tests/XcodeGraphMapperTests/MapperTests/Graph/GraphMapperTests.swift index c61bfaab..9fed9690 100644 --- a/Tests/XcodeGraphMapperTests/MapperTests/Graph/GraphMapperTests.swift +++ b/Tests/XcodeGraphMapperTests/MapperTests/Graph/GraphMapperTests.swift @@ -130,15 +130,15 @@ struct XcodeGraphMapperTests { // When let graph = try await mapper.buildGraph(from: .workspace(xcworkspace)) - print(projectA.path!) + // Then #expect(graph.workspace.name == "Workspace") #expect(graph.workspace.projects.contains(projectA.projectPath) == true) #expect(graph.workspace.projects.contains(projectB.projectPath) == true) #expect(graph.projects.count == 2) - let mappedProjectA = try #require(graph.projects[projectA.projectPath]) - let mappedProjectB = try #require(graph.projects[projectB.projectPath]) + let mappedProjectA = try #require(graph.projects[projectA.projectPath.parentDirectory]) + let mappedProjectB = try #require(graph.projects[projectB.projectPath.parentDirectory]) #expect(mappedProjectA.targets["ATarget"] != nil) #expect(mappedProjectB.targets["BTarget"] != nil)