diff options
author | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2015-11-19 11:31:15 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2015-11-19 11:46:36 +0000 |
commit | 827fbcab34c871fa8c67101fe93b2c988f8b0ee9 (patch) | |
tree | 654be596cef25794ff9f8f0125b2136b9797b4ee /src/lib/qtprofilesetup/templates | |
parent | 953593e5d36445a96282f7c6fdf564961bede53d (diff) |
Qt Core module: Make the lrelease rule optionally a multiplex rule.
lrelease takes a number of ts files and produces a qm output, so it is
technically a multiplex rule. However, normally users have one ts file
per language and want a 1:1 mapping. So we need to make this
configurable as not to force people to create one product per ts file.
Change-Id: I1b14eca6b52fd18a792e1ba26e3fe55db371ae3b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Diffstat (limited to 'src/lib/qtprofilesetup/templates')
-rw-r--r-- | src/lib/qtprofilesetup/templates/core.qbs | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/lib/qtprofilesetup/templates/core.qbs b/src/lib/qtprofilesetup/templates/core.qbs index 9611997fc..247d3b083 100644 --- a/src/lib/qtprofilesetup/templates/core.qbs +++ b/src/lib/qtprofilesetup/templates/core.qbs @@ -73,7 +73,10 @@ Module { // We don't want to resolve them against the source directory property string generatedFilesDir: product.buildDirectory + "/GeneratedFiles" property string qdocOutputDir: FileInfo.joinPaths(generatedFilesDir, "html") - property string qmFilesDir: product.destinationDirectory + property string qmDir: product.destinationDirectory + property string qmBaseName: product.targetName + property string qmFilesDir: qmDir // TODO: Remove in 1.6 + property bool lreleaseMultiplexMode: false cpp.defines: { var defines = @defines@; @@ -283,18 +286,26 @@ Module { Rule { inputs: ["ts"] + multiplex: ModUtils.moduleProperty(product, "lreleaseMultiplexMode") Artifact { - filePath: FileInfo.joinPaths(ModUtils.moduleProperty(product, "qmFilesDir"), - input.completeBaseName + ".qm") + filePath: FileInfo.joinPaths(ModUtils.moduleProperty(product, "qmDir"), + (ModUtils.moduleProperty(product, "lreleaseMultiplexMode") + ? ModUtils.moduleProperty(product, "qmBaseName") + : input.baseName) + ".qm") fileTags: ["qm"] } prepare: { + var inputFilePaths; + if (ModUtils.moduleProperty(product, "lreleaseMultiplexMode")) + inputFilePaths = inputs["ts"].map(function(artifact) { return artifact.filePath; }); + else + inputFilePaths = [input.filePath]; + var args = ['-silent', '-qm', output.filePath].concat(inputFilePaths); var cmd = new Command(ModUtils.moduleProperty(product, "binPath") + '/' - + ModUtils.moduleProperty(product, "lreleaseName"), - ['-silent', input.filePath, '-qm', output.filePath]); - cmd.description = 'lrelease ' + input.fileName; + + ModUtils.moduleProperty(product, "lreleaseName"), args); + cmd.description = 'Creating ' + output.fileName; cmd.highlight = 'filegen'; return cmd; } |