aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2016-10-17 11:14:30 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2016-10-28 11:01:46 +0000
commit7f73d219d3b38c91bb666450a94d8e98b8aecc53 (patch)
tree1bc1a336b98c581560d1d619a92d6802082aa187 /src
parentf829298a6f9810ad6182984cd56315846368fd98 (diff)
Add support for generating qrc files
[ChangeLog] Added support for generating qrc files. Change-Id: I9c5d703fcb6f8c14606d5abf66e8edfd4959f364 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/lib/qtprofilesetup/templates/core.qbs39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/lib/qtprofilesetup/templates/core.qbs b/src/lib/qtprofilesetup/templates/core.qbs
index 325006cd7..7d9eda360 100644
--- a/src/lib/qtprofilesetup/templates/core.qbs
+++ b/src/lib/qtprofilesetup/templates/core.qbs
@@ -1,6 +1,7 @@
import qbs 1.0
import qbs.FileInfo
import qbs.ModUtils
+import qbs.TextFile
import qbs.Utilities
import "moc.js" as Moc
import "qdoc.js" as Qdoc
@@ -268,6 +269,44 @@ Module {
}
}
+ property path resourceSourceBase: product.sourceDirectory
+ property string resourcePrefix: "/"
+ Rule {
+ multiplex: true
+ inputs: ["qt.core.resource_data"]
+ Artifact {
+ filePath: "__qbs_auto_" + product.name + ".qrc"
+ fileTags: ["qrc"]
+ }
+ prepare: {
+ var cmd = new JavaScriptCommand();
+ cmd.description = "generating " + output.fileName;
+ cmd.sourceCode = function() {
+ var qrcFile = new TextFile(output.filePath, TextFile.WriteOnly);
+ try {
+ qrcFile.writeLine('<!DOCTYPE RCC>');
+ qrcFile.writeLine('<RCC version="1.0">');
+ var prefix = inputs["qt.core.resource_data"][0].moduleProperty("Qt.core",
+ "resourcePrefix");
+ qrcFile.writeLine('<qresource prefix ="' + prefix + '">');
+ for (var i = 0; i < inputs["qt.core.resource_data"].length; ++i) {
+ var inp = inputs["qt.core.resource_data"][i];
+ var fullResPath = inp.filePath;
+ var baseDir = inp.moduleProperty("Qt.core", "resourceSourceBase");
+ var relResPath = FileInfo.relativePath(baseDir, fullResPath);
+ qrcFile.writeLine('<file alias = "' + relResPath + '">'
+ + fullResPath + '</file>');
+ }
+ qrcFile.writeLine('</qresource>');
+ qrcFile.writeLine('</RCC>');
+ } finally {
+ qrcFile.close();
+ }
+ };
+ return [cmd];
+ }
+ }
+
Rule {
inputs: ["qrc"]