Skip to content

Commit

Permalink
Revert "Preserve custom run args and working directory on generate (#…
Browse files Browse the repository at this point in the history
…6110)" (#6116)

This reverts commit d0d7f5b.
  • Loading branch information
fortmarek committed Mar 25, 2024
1 parent 7d3ff6f commit 9af0d17
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 146 deletions.
Expand Up @@ -81,8 +81,6 @@ final class ProjectDescriptorGenerator: ProjectDescriptorGenerating {
) throws -> ProjectDescriptor {
logger.notice("Generating project \(project.name)")

let previousXcodeProj = try? XcodeProj(pathString: project.xcodeProjPath.pathString)

let selfRef = XCWorkspaceDataFileRef(location: .current(""))
let selfRefFile = XCWorkspaceDataElement.file(selfRef)
let workspaceData = XCWorkspaceData(children: [selfRefFile])
Expand Down Expand Up @@ -144,8 +142,7 @@ final class ProjectDescriptorGenerator: ProjectDescriptorGenerating {
let schemes = try schemeDescriptorsGenerator.generateProjectSchemes(
project: project,
generatedProject: generatedProject,
graphTraverser: graphTraverser,
previousXcodeProj: previousXcodeProj
graphTraverser: graphTraverser
)

let xcodeProj = XcodeProj(workspace: workspace, pbxproj: pbxproj)
Expand Down
37 changes: 8 additions & 29 deletions Sources/TuistGenerator/Generator/SchemeDescriptorsGenerator.swift
@@ -1,5 +1,4 @@
import Foundation
import Mockable
import TSCBasic
import TSCUtility
import TuistCore
Expand All @@ -8,7 +7,6 @@ import TuistSupport
import XcodeProj

/// Protocol that defines the interface of the schemes generation.
@Mockable
protocol SchemeDescriptorsGenerating {
/// Generates the schemes for the workspace targets.
///
Expand All @@ -35,8 +33,7 @@ protocol SchemeDescriptorsGenerating {
func generateProjectSchemes(
project: Project,
generatedProject: GeneratedProject,
graphTraverser: GraphTraversing,
previousXcodeProj: XcodeProj?
graphTraverser: GraphTraversing
) throws -> [SchemeDescriptor]
}

Expand Down Expand Up @@ -87,8 +84,7 @@ final class SchemeDescriptorsGenerator: SchemeDescriptorsGenerating {
path: workspace.xcWorkspacePath.parentDirectory,
graphTraverser: graphTraverser,
generatedProjects: generatedProjects,
lastUpgradeCheck: workspace.generationOptions.lastXcodeUpgradeCheck,
previousXcodeProj: nil
lastUpgradeCheck: workspace.generationOptions.lastXcodeUpgradeCheck
)
}

Expand All @@ -98,17 +94,15 @@ final class SchemeDescriptorsGenerator: SchemeDescriptorsGenerating {
func generateProjectSchemes(
project: Project,
generatedProject: GeneratedProject,
graphTraverser: GraphTraversing,
previousXcodeProj: XcodeProj?
graphTraverser: GraphTraversing
) throws -> [SchemeDescriptor] {
try project.schemes.map { scheme in
try generateScheme(
scheme: scheme,
path: project.xcodeProjPath.parentDirectory,
graphTraverser: graphTraverser,
generatedProjects: [project.xcodeProjPath: generatedProject],
lastUpgradeCheck: project.lastUpgradeCheck,
previousXcodeProj: previousXcodeProj
lastUpgradeCheck: project.lastUpgradeCheck
)
}
}
Expand Down Expand Up @@ -141,8 +135,7 @@ final class SchemeDescriptorsGenerator: SchemeDescriptorsGenerating {
path: AbsolutePath,
graphTraverser: GraphTraversing,
generatedProjects: [AbsolutePath: GeneratedProject],
lastUpgradeCheck: Version?,
previousXcodeProj: XcodeProj?
lastUpgradeCheck: Version?
) throws -> SchemeDescriptor {
let generatedBuildAction = try schemeBuildAction(
scheme: scheme,
Expand All @@ -160,8 +153,7 @@ final class SchemeDescriptorsGenerator: SchemeDescriptorsGenerating {
scheme: scheme,
graphTraverser: graphTraverser,
rootPath: path,
generatedProjects: generatedProjects,
previousXcodeProj: previousXcodeProj
generatedProjects: generatedProjects
)
let generatedProfileAction = try schemeProfileAction(
scheme: scheme,
Expand Down Expand Up @@ -439,16 +431,12 @@ final class SchemeDescriptorsGenerator: SchemeDescriptorsGenerating {
scheme: Scheme,
graphTraverser: GraphTraversing,
rootPath: AbsolutePath,
generatedProjects: [AbsolutePath: GeneratedProject],
previousXcodeProj: XcodeProj?
generatedProjects: [AbsolutePath: GeneratedProject]
) throws -> XCScheme.LaunchAction? {
let specifiedExecutableTarget = scheme.runAction?.executable
let defaultTarget = defaultTargetReference(scheme: scheme)
guard let target = specifiedExecutableTarget ?? defaultTarget else { return nil }

let previousScheme = previousXcodeProj?.sharedData?.schemes
.first(where: { $0.name == scheme.name })

var buildableProductRunnable: XCScheme.BuildableProductRunnable?
var macroExpansion: XCScheme.BuildableReference?
var pathRunnable: XCScheme.PathRunnable?
Expand Down Expand Up @@ -513,14 +501,7 @@ final class SchemeDescriptorsGenerator: SchemeDescriptorsGenerating {
var locationScenarioReference: XCScheme.LocationScenarioReference?

if let arguments = scheme.runAction?.arguments {
let launchArguments = if arguments.launchArguments.isEmpty {
previousScheme?.launchAction?.commandlineArguments?.arguments ?? []
} else {
getCommandlineArguments(arguments.launchArguments)
}
commandlineArguments = XCScheme.CommandLineArguments(
arguments: launchArguments
)
commandlineArguments = XCScheme.CommandLineArguments(arguments: getCommandlineArguments(arguments.launchArguments))
environments = environmentVariables(arguments.environmentVariables)
}

Expand Down Expand Up @@ -630,8 +611,6 @@ final class SchemeDescriptorsGenerator: SchemeDescriptorsGenerating {
launchStyle: launchStyle,
askForAppToLaunch: launchActionConstants.askForAppToLaunch,
pathRunnable: pathRunnable,
customWorkingDirectory: previousScheme?.launchAction?.customWorkingDirectory,
useCustomWorkingDirectory: previousScheme?.launchAction?.useCustomWorkingDirectory ?? false,
locationScenarioReference: locationScenarioReference,
enableGPUFrameCaptureMode: enableGPUFrameCaptureMode,
enableAddressSanitizer: enableAddressSanitizer,
Expand Down
@@ -0,0 +1,25 @@
import Foundation
import TSCBasic
import TuistCore
import TuistCoreTesting
import TuistGraph
import TuistGraphTesting
@testable import TuistGenerator

final class MockSchemeDescriptorsGenerator: SchemeDescriptorsGenerating {
func generateProjectSchemes(
project _: Project,
generatedProject _: GeneratedProject,
graphTraverser _: GraphTraversing
) throws -> [SchemeDescriptor] {
[]
}

func generateWorkspaceSchemes(
workspace _: Workspace,
generatedProjects _: [AbsolutePath: GeneratedProject],
graphTraverser _: GraphTraversing
) throws -> [SchemeDescriptor] {
[]
}
}

0 comments on commit 9af0d17

Please sign in to comment.