Skip to content

Commit 4388dc8

Browse files
committed
Propagate CLI options to BuildParameters.Debugging
1 parent a59ca1a commit 4388dc8

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

Sources/CoreCommands/SwiftTool.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -685,7 +685,13 @@ public final class SwiftTool {
685685
sanitizers: options.build.enabledSanitizers,
686686
indexStoreMode: options.build.indexStoreMode.buildParameter,
687687
isXcodeBuildSystemEnabled: options.build.buildSystem == .xcode,
688-
debugInfoFormat: options.build.debugInfoFormat.buildParameter,
688+
debuggingParameters: .init(
689+
debugInfoFormat: options.build.debugInfoFormat.buildParameter,
690+
targetTriple: targetTriple,
691+
shouldEnableDebuggingEntitlement:
692+
(options.build.configuration == .debug && !options.build.disableUnsafeDebugging) ||
693+
(options.build.enableUnsafeDebugging && !options.build.disableUnsafeDebugging)
694+
),
689695
driverParameters: .init(
690696
canRenameEntrypointFunctionName: driverSupport.checkSupportedFrontendFlags(
691697
flags: ["entry-point-function-name"],

Sources/SPMBuildCore/BuildParameters/BuildParameters+Debugging.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
//===----------------------------------------------------------------------===//
1212

1313
import struct Basics.Triple
14+
import enum PackageModel.BuildConfiguration
1415

1516
extension BuildParameters {
1617
public struct Debugging: Encodable {

Sources/SPMBuildCore/BuildParameters/BuildParameters.swift

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,20 +132,24 @@ public struct BuildParameters: Encodable {
132132
indexStoreMode: IndexStoreMode = .auto,
133133
isXcodeBuildSystemEnabled: Bool = false,
134134
shouldSkipBuilding: Bool = false,
135-
debuggingParameters: Debugging = .init(),
135+
debuggingParameters: Debugging? = nil,
136136
driverParameters: Driver = .init(),
137137
linkingParameters: Linking = .init(),
138138
outputParameters: Output = .init(),
139139
testingParameters: Testing? = nil
140140
) throws {
141141
let targetTriple = try targetTriple ?? .getHostTriple(usingSwiftCompiler: toolchain.swiftCompilerPath)
142+
self.debuggingParameters = debuggingParameters ?? .init(
143+
targetTriple: targetTriple,
144+
shouldEnableDebuggingEntitlement: configuration == .debug
145+
)
142146

143147
self.dataPath = dataPath
144148
self.configuration = configuration
145149
self._toolchain = _Toolchain(toolchain: toolchain)
146150
self.hostTriple = try hostTriple ?? .getHostTriple(usingSwiftCompiler: toolchain.swiftCompilerPath)
147151
self.targetTriple = targetTriple
148-
switch debuggingParameters.debugInfoFormat {
152+
switch self.debuggingParameters.debugInfoFormat {
149153
case .dwarf:
150154
var flags = flags
151155
// DWARF requires lld as link.exe expects CodeView debug info.
@@ -182,7 +186,6 @@ public struct BuildParameters: Encodable {
182186
self.indexStoreMode = indexStoreMode
183187
self.isXcodeBuildSystemEnabled = isXcodeBuildSystemEnabled
184188
self.shouldSkipBuilding = shouldSkipBuilding
185-
self.debuggingParameters = debuggingParameters
186189
self.driverParameters = driverParameters
187190
self.linkingParameters = linkingParameters
188191
self.outputParameters = outputParameters

0 commit comments

Comments
 (0)