diff options
Diffstat (limited to 'share/qbs/modules/ib/ib.js')
-rw-r--r-- | share/qbs/modules/ib/ib.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/share/qbs/modules/ib/ib.js b/share/qbs/modules/ib/ib.js index ac5d14462..3254cdb06 100644 --- a/share/qbs/modules/ib/ib.js +++ b/share/qbs/modules/ib/ib.js @@ -1,3 +1,4 @@ +var DarwinTools = loadExtension("qbs.DarwinTools"); var ModUtils = loadExtension("qbs.ModUtils"); var Process = loadExtension("qbs.Process"); var PropertyList = loadExtension("qbs.PropertyList"); @@ -22,6 +23,19 @@ function prepareIbtoold(product, input, outputs) { args.push("--notices"); if (input.fileTags.contains("assetcatalog")) { + args.push("--platform", DarwinTools.applePlatformName(product.moduleProperty("qbs", "targetOS"))); + + var appIconName = ModUtils.moduleProperty(input, "appIcon"); + if (appIconName) + args.push("--app-icon", appIconName); + + var launchImageName = ModUtils.moduleProperty(input, "launchImage"); + if (launchImageName) + args.push("--launch-image", launchImageName); + + // Undocumented but used by Xcode (only for iOS?), probably runs pngcrush or equivalent + if (ModUtils.moduleProperty(input, "compressPngs")) + args.push("--compress-pngs"); } else { var sysroot = product.moduleProperty("qbs", "sysroot"); if (sysroot) @@ -43,6 +57,21 @@ function prepareIbtoold(product, input, outputs) { } } + // --target-device and -output-partial-info-plist were introduced in Xcode 6.0 for ibtool + if (ModUtils.moduleProperty(input, "ibtoolVersionMajor") >= 6 || input.fileTags.contains("assetcatalog")) { + args.push("--output-partial-info-plist", outputs.partial_infoplist[0].filePath); + + if (product.moduleProperty("qbs", "targetOS").contains("osx")) + args.push("--target-device", "mac"); + + if (product.moduleProperty("qbs", "targetOS").contains("ios")) { + // TODO: Only output the devices specified in TARGET_DEVICE_FAMILY + // We can't get this info from Info.plist keys due to dependency order + args.push("--target-device", "iphone"); + args.push("--target-device", "ipad"); + } + } + return args; } |