aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@petroules.com>2014-07-11 16:47:51 -0400
committerJoerg Bornemann <joerg.bornemann@digia.com>2014-07-21 11:58:36 +0200
commit847020fb6d2b943d3e09bcc9a99b340b5821297e (patch)
treec442d9709c32c808b4e84bf3229e03b0341a191f /share
parent3d9a145965b6c98f652a19520e9b4d9c62e46eb5 (diff)
Add support for compiling OS X icon sets.
Task-number: QBS-493 Change-Id: Ie6e4a00f672ce4305f03e00ec0b0b7ebcbd942c3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'share')
-rw-r--r--share/qbs/modules/cpp/DarwinGCC.qbs4
-rw-r--r--share/qbs/modules/ib/IBModule.qbs31
2 files changed, 33 insertions, 2 deletions
diff --git a/share/qbs/modules/cpp/DarwinGCC.qbs b/share/qbs/modules/cpp/DarwinGCC.qbs
index e74d4b84b..1081d3dc5 100644
--- a/share/qbs/modules/cpp/DarwinGCC.qbs
+++ b/share/qbs/modules/cpp/DarwinGCC.qbs
@@ -332,7 +332,7 @@ UnixGCC {
Rule {
multiplex: true
- inputs: ["application", "infoplist", "pkginfo", "application_dsym", "compiled_nib",
+ inputs: ["application", "infoplist", "pkginfo", "icns", "application_dsym", "compiled_nib",
"resourcerules", "ipa"]
Artifact {
@@ -351,7 +351,7 @@ UnixGCC {
Rule {
multiplex: true
- inputs: ["dynamiclibrary", "infoplist", "pkginfo", "dynamiclibrary_dsym", "compiled_nib"]
+ inputs: ["dynamiclibrary", "infoplist", "pkginfo", "icns", "dynamiclibrary_dsym", "compiled_nib"]
Artifact {
filePath: product.destinationDirectory + "/" + BundleTools.wrapperName(product)
diff --git a/share/qbs/modules/ib/IBModule.qbs b/share/qbs/modules/ib/IBModule.qbs
index 6f30fb0a2..bee1dd9e4 100644
--- a/share/qbs/modules/ib/IBModule.qbs
+++ b/share/qbs/modules/ib/IBModule.qbs
@@ -14,6 +14,10 @@ Module {
property stringList flags
+ // iconutil specific
+ property string iconutilName: "iconutil"
+ property string iconutilPath: iconutilName
+
// XIB/NIB specific
property string ibtoolName: "ibtool"
property string ibtoolPath: ibtoolName
@@ -21,6 +25,7 @@ Module {
// private properties
property string outputFormat: "human-readable-text"
+ property string appleIconSuffix: ".icns"
property string compiledNibSuffix: ".nib"
property string ibtoolVersion: { return Ib.ibtoolVersion(ibtoolPath); }
@@ -43,11 +48,37 @@ Module {
}
FileTagger {
+ patterns: ["*.iconset"] // bundle
+ fileTags: ["iconset"]
+ }
+
+ FileTagger {
patterns: ["*.nib", "*.xib"]
fileTags: ["nib"]
}
Rule {
+ inputs: ["iconset"]
+
+ Artifact {
+ filePath: {
+ var outputDirectory = BundleTools.isBundleProduct(product)
+ ? BundleTools.unlocalizedResourcesFolderPath(product)
+ : product.destinationDirectory;
+ return FileInfo.joinPaths(outputDirectory, input.completeBaseName + ModUtils.moduleProperty(product, "appleIconSuffix"))
+ }
+ fileTags: ["icns"]
+ }
+
+ prepare: {
+ var args = ["--convert", "icns", "--output", output.filePath, input.filePath];
+ var cmd = new Command(ModUtils.moduleProperty(product, "iconutilPath"), args);
+ cmd.description = ModUtils.moduleProperty(product, "iconutilName") + ' ' + input.fileName;
+ return cmd;
+ }
+ }
+
+ Rule {
inputs: ["nib"]
explicitlyDependsOn: ["infoplist"]