diff options
author | Jake Petroules <jake.petroules@petroules.com> | 2015-05-07 00:31:52 -0700 |
---|---|---|
committer | Jake Petroules <jake.petroules@petroules.com> | 2015-08-05 20:32:01 +0000 |
commit | 41498e121cd89e9614cde3497e8ed8de3906148a (patch) | |
tree | f413c2eddebd252a1e9e5cebc1a327dd09d82d88 /src/lib/qtprofilesetup/templates | |
parent | a455d5349b3ad2b947eec89545d36a7ee367d1eb (diff) |
Use BlackboxOutputArtifactTracker for qdoc.
Change-Id: Ie5b2eb70cd371287820dcc180ff3e21682ae062f
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Diffstat (limited to 'src/lib/qtprofilesetup/templates')
-rw-r--r-- | src/lib/qtprofilesetup/templates/core.qbs | 24 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/templates/qdoc.js | 81 |
2 files changed, 87 insertions, 18 deletions
diff --git a/src/lib/qtprofilesetup/templates/core.qbs b/src/lib/qtprofilesetup/templates/core.qbs index 844a58784..18e66a121 100644 --- a/src/lib/qtprofilesetup/templates/core.qbs +++ b/src/lib/qtprofilesetup/templates/core.qbs @@ -2,6 +2,7 @@ import qbs 1.0 import qbs.FileInfo import qbs.ModUtils import "moc.js" as Moc +import "qdoc.js" as Qdoc Module { id: qtcore @@ -20,7 +21,6 @@ Module { property string lreleaseName: "lrelease" property string qdocName: versionMajor >= 5 ? "qdoc" : "qdoc3" property stringList qdocEnvironment - property string qdocQhpFileName property path docPath property stringList helpGeneratorArgs: versionMajor >= 5 ? ["-platform", "minimal"] : [] property string version @@ -73,6 +73,7 @@ Module { // These are deliberately not path types // 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 cpp.defines: { @@ -303,25 +304,12 @@ Module { inputs: "qdocconf-main" explicitlyDependsOn: ["qdoc", "qdocconf"] - Artifact { - filePath: ModUtils.moduleProperty(product, "generatedFilesDir") + "/html" - fileTags: ["qdoc-html"] - } - - Artifact { - filePath: ModUtils.moduleProperty(product, "generatedFilesDir") + "/html/" - + ModUtils.moduleProperty(product, "qdocQhpFileName") - fileTags: ["qhp"] - } + outputFileTags: ModUtils.allFileTags(Qdoc.qdocFileTaggers()) + outputArtifacts: Qdoc.outputArtifacts(product, input) prepare: { - var outputDir = outputs["qdoc-html"][0].filePath; - var args = [input.filePath]; - var qtVersion = ModUtils.moduleProperty(product, "versionMajor"); - if (qtVersion >= 5) { - args.push("-outputdir"); - args.push(outputDir); - } + var outputDir = ModUtils.moduleProperty(product, "qdocOutputDir"); + var args = Qdoc.qdocArgs(product, input, outputDir); var cmd = new Command(ModUtils.moduleProperty(product, "binPath") + '/' + ModUtils.moduleProperty(product, "qdocName"), args); cmd.description = 'qdoc ' + input.fileName; diff --git a/src/lib/qtprofilesetup/templates/qdoc.js b/src/lib/qtprofilesetup/templates/qdoc.js new file mode 100644 index 000000000..95cc69fe1 --- /dev/null +++ b/src/lib/qtprofilesetup/templates/qdoc.js @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt.io/licensing +** +** This file is part of the Qt Build Suite. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms and +** conditions see http://www.qt.io/terms-conditions. For further information +** use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +var FileInfo = loadExtension("qbs.FileInfo"); +var ModUtils = loadExtension("qbs.ModUtils"); + +function qdocArgs(product, input, outputDir) { + var args = [input.filePath]; + var qtVersion = ModUtils.moduleProperty(product, "versionMajor"); + if (qtVersion >= 5) { + args.push("-outputdir"); + args.push(outputDir); + } + + return args; +} + +function qdocFileTaggers() { + var t = "qdoc-output"; + return { + ".qhp": [t, "qhp"], + ".qhp.sha1": [t, "qhp-sha1"], + ".css": [t, "qdoc-css"], + ".html": [t, "qdoc-html"], + ".index": [t, "qdoc-index"], + ".png": [t, "qdoc-png"] + }; +} + +function outputArtifacts(product, input) { + var tracker = new ModUtils.BlackboxOutputArtifactTracker(); + tracker.hostOS = product.moduleProperty("qbs", "hostOS"); + tracker.fileTaggers = qdocFileTaggers(); + tracker.command = FileInfo.joinPaths(ModUtils.moduleProperty(product, "binPath"), + ModUtils.moduleProperty(product, "qdocName")); + tracker.commandArgsFunction = function (outputDirectory) { + return qdocArgs(product, input, outputDirectory); + }; + tracker.commandEnvironmentFunction = function (outputDirectory) { + var env = {}; + var qdocEnv = ModUtils.moduleProperty(product, "qdocEnvironment"); + for (var j = 0; j < qdocEnv.length; ++j) { + var e = qdocEnv[j]; + var idx = e.indexOf("="); + var name = e.slice(0, idx); + var value = e.slice(idx + 1, e.length); + env[name] = value; + } + env["OUTDIR"] = outputDirectory; // Qt 4 replacement for -outputdir + return env; + }; + return tracker.artifacts(ModUtils.moduleProperty(product, "qdocOutputDir")); +} |