Skip to content

Commit ebc98f4

Browse files
authored
Merge pull request #78205 from hamishknight/add-plugin-server
[xcodegen] Allow `swift-plugin-server` to be added
2 parents 1d1b260 + a7b3485 commit ebc98f4

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

utils/swift-xcodegen/Sources/SwiftXcodeGen/BuildArgs/SwiftTargets.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,12 +200,17 @@ struct SwiftTargets {
200200

201201
guard let buildArgs = try computeBuildArgs(for: rule) else { return }
202202

203-
let moduleName = buildArgs.lastValue(for: .moduleName)
203+
// Pick up the module name from the arguments, or use an explicitly
204+
// specified module name if we have one. The latter might be invalid so
205+
// may not be part of the build args (e.g 'swift-plugin-server'), but is
206+
// fine for generation.
207+
let moduleName = buildArgs.lastValue(for: .moduleName) ??
208+
rule.attributes[.swiftModuleName]?.value
204209
guard let moduleName else {
205210
log.debug("! Skipping Swift target with output \(primaryOutput); no module name")
206211
return
207212
}
208-
let moduleLinkName = rule.attributes[.swiftLibraryName]?.value ??
213+
let moduleLinkName = rule.attributes[.swiftLibraryName]?.value ??
209214
buildArgs.lastValue(for: .moduleLinkName)
210215
let name = moduleLinkName ?? moduleName
211216

utils/swift-xcodegen/Sources/SwiftXcodeGen/Generator/ProjectGenerator.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -557,8 +557,10 @@ fileprivate final class ProjectGenerator {
557557

558558
applySubstitutions(to: &buildArgs, target: target, targetInfo: targetInfo)
559559

560+
// Follow the same logic as swift-driver and set the module name to 'main'
561+
// if we don't have one.
560562
let moduleName = buildArgs.takePrintedLastValue(for: .moduleName)
561-
buildSettings.common.PRODUCT_MODULE_NAME = moduleName
563+
buildSettings.common.PRODUCT_MODULE_NAME = moduleName ?? "main"
562564

563565
// Emit a module if we need to.
564566
// TODO: This currently just uses the build rule command args, should we

0 commit comments

Comments
 (0)