92 lines
4.3 KiB
Diff
92 lines
4.3 KiB
Diff
commit 74a8de7bccc0c40381b63a79143d4ca945c0ed68
|
|
Date: Thu Aug 5 23:30:59 2021 +0530
|
|
|
|
Change the order of Workspace toolchain C/Swift flags to match the command-line (#3636)
|
|
|
|
* Move Workspace UserToolchain C/Swift flags to just before the command-line flags,
|
|
so both are after the package's internal flags.
|
|
|
|
This makes sure internal package paths are searched first, before external flags
|
|
are applied.
|
|
|
|
diff --git a/swiftpm/Sources/Build/BuildPlan.swift b/swiftpm/Sources/Build/BuildPlan.swift
|
|
index 78072f5b..fb78b54f 100644
|
|
--- a/swiftpm/Sources/Build/BuildPlan.swift
|
|
+++ b/swiftpm/Sources/Build/BuildPlan.swift
|
|
@@ -330,7 +330,6 @@ public final class ClangTargetBuildDescription {
|
|
args += ["-fobjc-arc"]
|
|
}
|
|
args += buildParameters.targetTripleArgs(for: target)
|
|
- args += buildParameters.toolchain.extraCCFlags
|
|
args += ["-g"]
|
|
if buildParameters.triple.isWindows() {
|
|
args += ["-gcodeview"]
|
|
@@ -373,6 +372,7 @@ public final class ClangTargetBuildDescription {
|
|
args += ["-include", resourceAccessorHeaderFile.pathString]
|
|
}
|
|
|
|
+ args += buildParameters.toolchain.extraCCFlags
|
|
// User arguments (from -Xcc and -Xcxx below) should follow generated arguments to allow user overrides
|
|
args += buildParameters.flags.cCompilerFlags
|
|
|
|
@@ -724,7 +724,6 @@ public final class SwiftTargetBuildDescription {
|
|
}
|
|
|
|
args += buildParameters.indexStoreArguments(for: target)
|
|
- args += buildParameters.toolchain.extraSwiftCFlags
|
|
args += optimizationArguments
|
|
args += testingArguments
|
|
args += ["-g"]
|
|
@@ -791,6 +790,7 @@ public final class SwiftTargetBuildDescription {
|
|
args += ["-emit-module-interface-path", parseableModuleInterfaceOutputPath.pathString]
|
|
}
|
|
|
|
+ args += buildParameters.toolchain.extraSwiftCFlags
|
|
// User arguments (from -Xswiftc) should follow generated arguments to allow user overrides
|
|
args += buildParameters.swiftCompilerFlags
|
|
return args
|
|
@@ -907,7 +907,6 @@ public final class SwiftTargetBuildDescription {
|
|
result += ["-swift-version", swiftVersion.rawValue]
|
|
|
|
result += buildParameters.indexStoreArguments(for: target)
|
|
- result += buildParameters.toolchain.extraSwiftCFlags
|
|
result += optimizationArguments
|
|
result += testingArguments
|
|
result += ["-g"]
|
|
@@ -919,6 +918,7 @@ public final class SwiftTargetBuildDescription {
|
|
result += buildParameters.sanitizers.compileSwiftFlags()
|
|
result += ["-parseable-output"]
|
|
result += self.buildSettingsFlags()
|
|
+ result += buildParameters.toolchain.extraSwiftCFlags
|
|
result += buildParameters.swiftCompilerFlags
|
|
return result
|
|
}
|
|
@@ -1165,7 +1165,6 @@ public final class ProductBuildDescription {
|
|
/// The arguments to link and create this product.
|
|
public func linkArguments() throws -> [String] {
|
|
var args = [buildParameters.toolchain.swiftCompiler.pathString]
|
|
- args += buildParameters.toolchain.extraSwiftCFlags
|
|
args += buildParameters.sanitizers.linkSwiftFlags()
|
|
args += additionalFlags
|
|
|
|
@@ -1286,6 +1285,7 @@ public final class ProductBuildDescription {
|
|
// building for Darwin in debug configuration.
|
|
args += swiftASTs.flatMap{ ["-Xlinker", "-add_ast_path", "-Xlinker", $0.pathString] }
|
|
|
|
+ args += buildParameters.toolchain.extraSwiftCFlags
|
|
// User arguments (from -Xlinker and -Xswiftc) should follow generated arguments to allow user overrides
|
|
args += buildParameters.linkerFlags
|
|
args += stripInvalidArguments(buildParameters.swiftCompilerFlags)
|
|
diff --git a/swiftpm/Utilities/bootstrap b/swiftpm/Utilities/bootstrap
|
|
index 1f673fdd..e51616cb 100755
|
|
--- a/swiftpm/Utilities/bootstrap
|
|
+++ b/swiftpm/Utilities/bootstrap
|
|
@@ -800,6 +800,7 @@ def get_swiftpm_flags(args):
|
|
if 'ANDROID_DATA' in os.environ or (args.cross_compile_hosts and re.match(
|
|
'android-', args.cross_compile_hosts)):
|
|
build_flags.extend(["-Xswiftc", "-Xcc", "-Xswiftc", "-U_GNU_SOURCE"])
|
|
+ build_flags.extend(["-Xlinker", "-landroid-spawn"])
|
|
|
|
# On ELF platforms, remove the host toolchain's stdlib absolute rpath from
|
|
# installed executables and shared libraries.
|