Added ability to name the executable target in schemes. (#866)

```
schemes:
  MyScheme:
    build:
      executable: MyExecutable
      targets:
      ...
```

Co-authored-by: Igor Ranieri Elland <igor.ranieri@de.bosch.com>
This commit is contained in:
Igor Ranieri Elland
2020-05-20 08:05:03 -05:00
committed by GitHub
co-authored by Igor Ranieri Elland
parent 474d8f6907
commit 92aaebb9d5
4 changed files with 17 additions and 5 deletions
+1 -1
View File
@@ -652,7 +652,7 @@ public class PBXProjGenerator {
var packageDependencies: [XCSwiftPackageProductDependency] = []
var extensions: [PBXBuildFile] = []
var carthageFrameworksToEmbed: [String] = []
var localPackageReferences: [String] = project.packages.compactMap { $0.value.isLocal ? $0.key : nil }
let localPackageReferences: [String] = project.packages.compactMap { $0.value.isLocal ? $0.key : nil }
let targetDependencies = (target.transitivelyLinkDependencies ?? project.options.transitivelyLinkDependencies) ?
getAllDependenciesPlusTransitiveNeedingEmbedding(target: target) : target.dependencies
+9 -2
View File
@@ -161,10 +161,17 @@ public class SchemeGenerator {
return XCScheme.ExecutionAction(scriptText: action.script, title: action.name, environmentBuildable: environmentBuildable)
}
let schemeTarget = target ?? project.getTarget(scheme.build.targets.first!.target.name)
let schemeTarget: Target?
if let targetName = scheme.build.executableName {
schemeTarget = project.getTarget(targetName)
} else {
schemeTarget = target ?? project.getTarget(scheme.build.targets.first!.target.name)
}
let shouldExecuteOnLaunch = schemeTarget?.shouldExecuteOnLaunch == true
let buildableReference = buildActionEntries.first!.buildableReference
let buildableReference = buildActionEntries.first(where: { $0.buildableReference.blueprintName == schemeTarget?.name })?.buildableReference ?? buildActionEntries.first!.buildableReference
let runnables = makeProductRunnables(for: schemeTarget, buildableReference: buildableReference)
let buildAction = XCScheme.BuildAction(