diff --git a/Sources/CoreCommands/Options.swift b/Sources/CoreCommands/Options.swift index 3b7411d8ce9..306ce94082d 100644 --- a/Sources/CoreCommands/Options.swift +++ b/Sources/CoreCommands/Options.swift @@ -444,6 +444,10 @@ public struct BuildOptions: ParsableArguments { self._buildToolsSwiftCFlags } + var hostSwiftCFlags: [String] { + self._buildToolsSwiftCFlags + } + public var buildFlags: BuildFlags { BuildFlags( cCompilerFlags: self.cCompilerFlags, @@ -454,6 +458,16 @@ public struct BuildOptions: ParsableArguments { ) } + public var hostBuildFlags: BuildFlags { + BuildFlags( + cCompilerFlags: [], + cxxCompilerFlags: [], + swiftCompilerFlags: self.hostSwiftCFlags, + linkerFlags: [], + xcbuildFlags: [] + ) + } + /// The compilation destination’s target triple. @Option(name: .customLong("triple"), transform: Triple.init) public var customCompileTriple: Triple? diff --git a/Sources/CoreCommands/SwiftCommandState.swift b/Sources/CoreCommands/SwiftCommandState.swift index b4a6158274b..5e87e3da931 100644 --- a/Sources/CoreCommands/SwiftCommandState.swift +++ b/Sources/CoreCommands/SwiftCommandState.swift @@ -926,13 +926,18 @@ public final class SwiftCommandState { case (true, true): .noLazy } + let flags = switch destination { + case .host: options.build.hostBuildFlags + case .target: options.build.buildFlags + } + return try BuildParameters( destination: destination, dataPath: dataPath, configuration: self.options.build.configuration ?? self.preferredBuildConfiguration, toolchain: toolchain, triple: triple, - flags: options.build.buildFlags, + flags: flags, buildSystemKind: options.build.buildSystem, pkgConfigDirectories: options.locations.pkgConfigDirectories, architectures: options.build.architectures,