diff --git a/Sources/Workspace/Destination.swift b/Sources/Workspace/Destination.swift index e681496b96f..78fd171dc1c 100644 --- a/Sources/Workspace/Destination.swift +++ b/Sources/Workspace/Destination.swift @@ -37,7 +37,7 @@ public struct Destination: Encodable { public let target: Triple /// The SDK used to compile for the destination. - public let sdk: AbsolutePath + public let sdk: AbsolutePath? /// The binDir in the containing the compilers/linker to be used for the compilation. public let binDir: AbsolutePath @@ -112,7 +112,7 @@ public struct Destination: Encodable { #else return Destination( target: hostTargetTriple, - sdk: .root, + sdk: nil, binDir: binDir, extraCCFlags: ["-fPIC"], extraSwiftCFlags: [], diff --git a/Sources/Workspace/UserToolchain.swift b/Sources/Workspace/UserToolchain.swift index 97a46cc649f..dfb4b23642d 100644 --- a/Sources/Workspace/UserToolchain.swift +++ b/Sources/Workspace/UserToolchain.swift @@ -221,14 +221,19 @@ public final class UserToolchain: Toolchain { self.xctest = nil #endif - self.extraSwiftCFlags = (destination.target.isDarwin() - ? ["-sdk", destination.sdk.pathString] + if let sdk = destination.sdk { + self.extraSwiftCFlags = (destination.target.isDarwin() + ? ["-sdk", sdk.pathString] : []) + destination.extraSwiftCFlags - self.extraCCFlags = [ - destination.target.isDarwin() ? "-isysroot" : "--sysroot", destination.sdk.pathString - ] + destination.extraCCFlags + self.extraCCFlags = [ + destination.target.isDarwin() ? "-isysroot" : "--sysroot", sdk.pathString + ] + destination.extraCCFlags + } else { + self.extraSwiftCFlags = destination.extraSwiftCFlags + self.extraCCFlags = destination.extraCCFlags + } // Compute the path of directory containing the PackageDescription libraries. var pdLibDir = UserManifestResources.libDir(forBinDir: binDir)