From e55b41dde5789bd45164555f2bddc0a8fe15771d Mon Sep 17 00:00:00 2001 From: Andrew Knight Date: Sun, 8 May 2016 20:44:08 +0300 Subject: Enable cross-compilation to Darwin targets from non-Darwin hosts Now that plist support is cross-platform, some assumptions about the hostOS being Darwin can be removed to allow for cross-compiling to Darwin targets. Assumes the user has mounted the partition containing their Xcode SDKs. Change-Id: I0b22964bebf9c2b968890ece249695aa7c676e09 Reviewed-by: Jake Petroules --- share/qbs/modules/cpp/gcc.js | 7 ++++--- share/qbs/modules/cpp/ios-gcc.qbs | 3 +-- share/qbs/modules/cpp/osx-gcc.qbs | 3 +-- share/qbs/modules/cpp/tvos-gcc.qbs | 3 +-- share/qbs/modules/cpp/watchos-gcc.qbs | 3 +-- share/qbs/modules/xcode/xcode.qbs | 2 +- 6 files changed, 9 insertions(+), 12 deletions(-) (limited to 'share') diff --git a/share/qbs/modules/cpp/gcc.js b/share/qbs/modules/cpp/gcc.js index dfecfaac2..7b0380dbb 100644 --- a/share/qbs/modules/cpp/gcc.js +++ b/share/qbs/modules/cpp/gcc.js @@ -115,9 +115,10 @@ function linkerFlags(product, inputs, output) { args = args.concat(escapeLinkerFlags(product, ["--as-needed"])); } - var arch = product.moduleProperty("cpp", "targetArch"); - if (isDarwin) - args.push("-arch", arch); + if (haveTargetOption(product)) + args.push("-target", product.moduleProperty("cpp", "target")); + else if (isDarwin) + args.push("-arch", product.moduleProperty("cpp", "targetArch")); var minimumDarwinVersion = ModUtils.moduleProperty(product, "minimumDarwinVersion"); if (minimumDarwinVersion) { diff --git a/share/qbs/modules/cpp/ios-gcc.qbs b/share/qbs/modules/cpp/ios-gcc.qbs index 0708a22ef..1ab6e8021 100644 --- a/share/qbs/modules/cpp/ios-gcc.qbs +++ b/share/qbs/modules/cpp/ios-gcc.qbs @@ -35,8 +35,7 @@ import qbs.FileInfo import qbs.ModUtils DarwinGCC { - condition: qbs.hostOS.contains('osx') && - qbs.targetOS.contains('ios') && + condition: qbs.targetOS.contains('ios') && qbs.toolchain && qbs.toolchain.contains('gcc') targetSystem: "ios" + (minimumIosVersion || "") diff --git a/share/qbs/modules/cpp/osx-gcc.qbs b/share/qbs/modules/cpp/osx-gcc.qbs index a6c674d2c..c6e8b7fc8 100644 --- a/share/qbs/modules/cpp/osx-gcc.qbs +++ b/share/qbs/modules/cpp/osx-gcc.qbs @@ -32,8 +32,7 @@ import qbs 1.0 import qbs.ModUtils DarwinGCC { - condition: qbs.hostOS.contains('osx') && - qbs.targetOS.contains('osx') && + condition: qbs.targetOS.contains('osx') && qbs.toolchain && qbs.toolchain.contains('gcc') targetSystem: "macosx" + (minimumOsxVersion || "") diff --git a/share/qbs/modules/cpp/tvos-gcc.qbs b/share/qbs/modules/cpp/tvos-gcc.qbs index 0e5f059d3..d3d7f0a3c 100644 --- a/share/qbs/modules/cpp/tvos-gcc.qbs +++ b/share/qbs/modules/cpp/tvos-gcc.qbs @@ -31,8 +31,7 @@ import qbs DarwinGCC { - condition: qbs.hostOS.contains('osx') && - qbs.targetOS.contains('tvos') && + condition: qbs.targetOS.contains('tvos') && qbs.toolchain && qbs.toolchain.contains('gcc') targetSystem: "tvos" + (minimumTvosVersion || "") diff --git a/share/qbs/modules/cpp/watchos-gcc.qbs b/share/qbs/modules/cpp/watchos-gcc.qbs index e188eee8e..c3edd86a5 100644 --- a/share/qbs/modules/cpp/watchos-gcc.qbs +++ b/share/qbs/modules/cpp/watchos-gcc.qbs @@ -32,8 +32,7 @@ import qbs DarwinGCC { - condition: qbs.hostOS.contains('osx') && - qbs.targetOS.contains('watchos') && + condition: qbs.targetOS.contains('watchos') && qbs.toolchain && qbs.toolchain.contains('gcc') targetSystem: "watchos" + (minimumWatchosVersion || "") diff --git a/share/qbs/modules/xcode/xcode.qbs b/share/qbs/modules/xcode/xcode.qbs index f6994e3be..b0141b22a 100644 --- a/share/qbs/modules/xcode/xcode.qbs +++ b/share/qbs/modules/xcode/xcode.qbs @@ -9,7 +9,7 @@ import qbs.PropertyList import 'xcode.js' as Utils Module { - condition: qbs.hostOS.contains("darwin") && qbs.targetOS.contains("darwin") && + condition: qbs.targetOS.contains("darwin") && qbs.toolchain && qbs.toolchain.contains("xcode") property path developerPath: "/Applications/Xcode.app/Contents/Developer" -- cgit v1.2.3