diff options
author | Jake Petroules <jake.petroules@qt.io> | 2017-05-30 18:03:13 -0700 |
---|---|---|
committer | Jake Petroules <jake.petroules@qt.io> | 2017-06-02 19:41:38 +0000 |
commit | b3e8a5c5f8dd7be8abe3a1543cfa818f6f2eee3b (patch) | |
tree | b26358a50ac250d34a8f5e965fc7c62a34093411 | |
parent | 11a08386295c1b9c9abb71899421274daea07d2c (diff) |
Introduce the qbsversion module for building Qbs
Use that instead of QbsFunctions.qbsVersion() and read it in
qbs_version.pri; this has the advantage that simple text processing
tools can retrieve the project version without having to parse
JavaScript. It's also set from only one place now.
Change-Id: Icfd2a6bf12b794b55c9ba31934a96b4483224eae
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r-- | VERSION | 1 | ||||
-rw-r--r-- | dist/dist.qbs | 4 | ||||
-rw-r--r-- | doc/doc.qbs | 6 | ||||
-rw-r--r-- | qbs-resources/imports/QbsFunctions/functions.js | 1 | ||||
-rw-r--r-- | qbs-resources/imports/QbsLibrary.qbs | 3 | ||||
-rw-r--r-- | qbs-resources/imports/QbsProduct.qbs | 1 | ||||
-rw-r--r-- | qbs-resources/modules/qbsversion/qbsversion.qbs | 24 | ||||
-rw-r--r-- | qbs.qbs | 5 | ||||
-rw-r--r-- | qbs_version.pri | 2 | ||||
-rw-r--r-- | src/app/qbs/qbs.qbs | 3 | ||||
-rw-r--r-- | src/lib/corelib/corelib.qbs | 1 | ||||
-rw-r--r-- | tests/auto/cmdlineparser/cmdlineparser.qbs | 4 |
12 files changed, 41 insertions, 14 deletions
diff --git a/VERSION b/VERSION new file mode 100644 index 000000000..f8e233b27 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +1.9.0 diff --git a/dist/dist.qbs b/dist/dist.qbs index a5ba27308..51b55bd4d 100644 --- a/dist/dist.qbs +++ b/dist/dist.qbs @@ -3,7 +3,6 @@ import qbs.FileInfo import qbs.ModUtils import qbs.Process import qbs.TextFile -import QbsFunctions Product { Depends { name: "qbs-config" } @@ -14,6 +13,7 @@ Product { Depends { name: "qbs-setup-toolchains" } Depends { name: "qbs_app" } Depends { name: "qbs_processlauncher" } + Depends { name: "qbsversion" } Depends { name: "qbscore" } Depends { name: "qbsqtprofilesetup" } Depends { name: "qbs_cpp_scanner" } @@ -50,7 +50,7 @@ Product { condition: qbs.targetOS.contains("windows") builtByDefault: false type: ["archiver.archive"] - targetName: "qbs-windows-" + qbs.architecture + "-" + QbsFunctions.qbsVersion() + targetName: "qbs-windows-" + qbs.architecture + "-" + qbsversion.version destinationDirectory: project.buildDirectory archiver.type: "zip" diff --git a/doc/doc.qbs b/doc/doc.qbs index c83259c42..042e67182 100644 --- a/doc/doc.qbs +++ b/doc/doc.qbs @@ -1,5 +1,4 @@ import qbs 1.0 -import QbsFunctions Product { name: "documentation" @@ -7,6 +6,7 @@ Product { type: "qch" Depends { name: "Qt.core" } Depends { name: "qbsbuildconfig" } + Depends { name: "qbsversion" } files: [ "qbs.qdoc", @@ -19,9 +19,9 @@ Product { fileTags: "qdocconf-main" } - property string versionTag: QbsFunctions.qbsVersion().replace(/\.|-/g, "") + property string versionTag: qbsversion.version.replace(/\.|-/g, "") Qt.core.qdocEnvironment: [ - "QBS_VERSION=" + QbsFunctions.qbsVersion(), + "QBS_VERSION=" + qbsversion.version, "SRCDIR=" + path, "QT_INSTALL_DOCS=" + Qt.core.docPath, "QBS_VERSION_TAG=" + versionTag diff --git a/qbs-resources/imports/QbsFunctions/functions.js b/qbs-resources/imports/QbsFunctions/functions.js deleted file mode 100644 index b4f6706f7..000000000 --- a/qbs-resources/imports/QbsFunctions/functions.js +++ /dev/null @@ -1 +0,0 @@ -function qbsVersion() { return "1.9.0"; } diff --git a/qbs-resources/imports/QbsLibrary.qbs b/qbs-resources/imports/QbsLibrary.qbs index 218da8941..b459b4c8c 100644 --- a/qbs-resources/imports/QbsLibrary.qbs +++ b/qbs-resources/imports/QbsLibrary.qbs @@ -1,10 +1,9 @@ import qbs -import QbsFunctions QbsProduct { Depends { name: "cpp" } Depends { name: "bundle" } - version: QbsFunctions.qbsVersion() + version: qbsversion.version type: Qt.core.staticBuild ? "staticlibrary" : "dynamiclibrary" targetName: (qbs.enableDebugCode && qbs.targetOS.contains("windows")) ? (name + 'd') : name destinationDirectory: qbs.targetOS.contains("windows") ? "bin" : qbsbuildconfig.libDirName diff --git a/qbs-resources/imports/QbsProduct.qbs b/qbs-resources/imports/QbsProduct.qbs index cd4fdf437..a90037bc6 100644 --- a/qbs-resources/imports/QbsProduct.qbs +++ b/qbs-resources/imports/QbsProduct.qbs @@ -2,6 +2,7 @@ import qbs Product { Depends { name: "qbsbuildconfig" } + Depends { name: "qbsversion" } Depends { name: "Qt.core"; versionAtLeast: minimumQtVersion } property string minimumQtVersion: "5.6.0" property bool install: true diff --git a/qbs-resources/modules/qbsversion/qbsversion.qbs b/qbs-resources/modules/qbsversion/qbsversion.qbs new file mode 100644 index 000000000..ff1fd18f0 --- /dev/null +++ b/qbs-resources/modules/qbsversion/qbsversion.qbs @@ -0,0 +1,24 @@ +import qbs +import qbs.File +import qbs.FileInfo +import qbs.TextFile + +Module { + Probe { + id: qbsVersionProbe + property var lastModified: File.lastModified(versionFilePath) + property string versionFilePath: FileInfo.joinPaths(path, "..", "..", "..", "VERSION") + property string version + configure: { + var tf = new TextFile(versionFilePath, TextFile.ReadOnly); + try { + version = tf.readAll().trim(); + found = !!version; + } finally { + tf.close(); + } + } + } + + version: qbsVersionProbe.version +} @@ -25,6 +25,11 @@ Project { } Product { + name: "version" + files: ["VERSION"] + } + + Product { name: "qmake project files for qbs" files: ["**/*.pr[io]"] } diff --git a/qbs_version.pri b/qbs_version.pri index 874d85184..97c4c799e 100644 --- a/qbs_version.pri +++ b/qbs_version.pri @@ -1,4 +1,4 @@ -QBS_VERSION = 1.9.0 +QBS_VERSION = $$cat($$PWD/VERSION) QBS_VERSION_MAJ = $$section(QBS_VERSION, ., 0, 0) QBS_VERSION_MIN = $$section(QBS_VERSION, ., 1, 1) DEFINES += QBS_VERSION=\\\"$$QBS_VERSION\\\" diff --git a/src/app/qbs/qbs.qbs b/src/app/qbs/qbs.qbs index da02da68f..ae4c0ab72 100644 --- a/src/app/qbs/qbs.qbs +++ b/src/app/qbs/qbs.qbs @@ -1,5 +1,4 @@ import qbs 1.0 -import QbsFunctions QbsApp { name: "qbs_app" @@ -7,7 +6,7 @@ QbsApp { targetName: "qbs" // TODO: Use Utilities.cStringQuote cpp.defines: base.concat([ - 'QBS_VERSION="' + QbsFunctions.qbsVersion() + '"', + 'QBS_VERSION="' + qbsversion.version + '"', 'QBS_RELATIVE_LIBEXEC_PATH="' + qbsbuildconfig.relativeLibexecPath + '"', 'QBS_RELATIVE_SEARCH_PATH="' + qbsbuildconfig.relativeSearchPath + '"', 'QBS_RELATIVE_PLUGINS_PATH="' + qbsbuildconfig.relativePluginsPath + '"', diff --git a/src/lib/corelib/corelib.qbs b/src/lib/corelib/corelib.qbs index 1b137925c..f534cf239 100644 --- a/src/lib/corelib/corelib.qbs +++ b/src/lib/corelib/corelib.qbs @@ -1,5 +1,4 @@ import qbs 1.0 -import QbsFunctions QbsLibrary { Depends { name: "clangcompilationdbgenerator" } diff --git a/tests/auto/cmdlineparser/cmdlineparser.qbs b/tests/auto/cmdlineparser/cmdlineparser.qbs index 774372c61..717814661 100644 --- a/tests/auto/cmdlineparser/cmdlineparser.qbs +++ b/tests/auto/cmdlineparser/cmdlineparser.qbs @@ -1,13 +1,13 @@ import qbs -import QbsFunctions QbsAutotest { + Depends { name: "qbsversion" } testName: "cmdlineparser" files: ["tst_cmdlineparser.cpp", "../../../src/app/qbs/qbstool.cpp"] // TODO: Use Utilities.cStringQuote cpp.defines: base.concat([ 'SRCDIR="' + path + '"', - "QBS_VERSION=\"" + QbsFunctions.qbsVersion() + "\"" + "QBS_VERSION=\"" + qbsversion.version + "\"" ]) // TODO: Make parser a static library? |