From 8673aae986a3028f5f9dacd15dd77f0d35d2c281 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 1 Mar 2018 14:59:40 +0100 Subject: Allow plugins to specify a "revision" to show in addition to the version To be used for the version control revision the plugin was built from. Invent a QTC_PLUGIN_REVISION replacement string for the plugin .json.in which can be set by the build process. Task-number: QTCREATORBUG-19951 Change-Id: Id5fd64b5506383e0b7749bcfd34d178baf8fe7af Reviewed-by: Christian Kandeler Reviewed-by: Alessandro Portale --- qbs/modules/pluginjson/pluginjson.qbs | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'qbs') diff --git a/qbs/modules/pluginjson/pluginjson.qbs b/qbs/modules/pluginjson/pluginjson.qbs index 03bdb0b076..8cba183437 100644 --- a/qbs/modules/pluginjson/pluginjson.qbs +++ b/qbs/modules/pluginjson/pluginjson.qbs @@ -1,11 +1,37 @@ import qbs 1.0 -import qbs.TextFile +import qbs.File import qbs.FileInfo +import qbs.TextFile +import qbs.Utilities Module { Depends { id: qtcore; name: "Qt.core" } Depends { name: "qtc" } + // TODO: Wrap the VCS specific stuff in a dedicated module + property bool hasVcs: Utilities.versionCompare(qbs.version, "1.10") >= 0 + Depends { name: "vcs"; condition: hasVcs } + Properties { + condition: hasVcs + vcs.repoDir: { + // TODO: Could something like this be incorporated into the vcs module? + // Currently, the default repo dir is project.sourceDirectory, which + // does not make sense for Qt Creator. + var dir = sourceDirectory; + while (true) { + if (File.exists(FileInfo.joinPaths(dir, ".git"))) + return dir; + var newDir = FileInfo.path(dir); + if (newDir === dir || dir === project.sourceDirectory) { + console.warn("No git repository found for product " + product.name + + ", revision information will not be evailable."); + break; + } + dir = newDir; + } + } + } + additionalProductTypes: ["qt_plugin_metadata"] Rule { @@ -56,6 +82,8 @@ Module { vars['IDE_VERSION_RELEASE'] = product.moduleProperty("qtc", "ide_version_release"); vars['QTCREATOR_COPYRIGHT_YEAR'] = product.moduleProperty("qtc", "qtcreator_copyright_year") + if (!vars['QTC_PLUGIN_REVISION']) + vars['QTC_PLUGIN_REVISION'] = product.vcs ? (product.vcs.repoState || "") : ""; var deplist = []; for (i in plugin_depends) { deplist.push(" { \"Name\" : \"" + plugin_depends[i] + "\", \"Version\" : \"" + qtcVersion + "\" }"); -- cgit v1.2.3