aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Komissarov <ABBAPOH@gmail.com>2019-06-12 19:50:10 +0200
committerIvan Komissarov <ABBAPOH@gmail.com>2019-06-14 15:47:46 +0000
commitad23c58595f54484f45b00631dc62c6051228a47 (patch)
tree398165f7ed177ffcc8d25d50d70f2ca2b2440739
parentc0b67ea8dc0b7ad39a1359f8816f596d3e7284b8 (diff)
Fix javac version detection
It seems, that javac -version can return "12" instead of "12.0.0" Change-Id: I804cbadb410dc11f566fda122f3082a8607ebb36 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--share/qbs/imports/qbs/ModUtils/utils.js5
-rw-r--r--share/qbs/modules/java/JavaModule.qbs4
-rw-r--r--share/qbs/modules/java/utils.js15
3 files changed, 19 insertions, 5 deletions
diff --git a/share/qbs/imports/qbs/ModUtils/utils.js b/share/qbs/imports/qbs/ModUtils/utils.js
index 5ba16de24..84d62a556 100644
--- a/share/qbs/imports/qbs/ModUtils/utils.js
+++ b/share/qbs/imports/qbs/ModUtils/utils.js
@@ -331,7 +331,8 @@ var PropertyValidator = (function () {
if (max !== undefined && value > max)
return false;
return true;
- }, "must be " + (!allowFloats ? "an integer " : "") + message.join(" and "));
+ }, "must be " + (!allowFloats ? "an integer " : "") + message.join(" and ")
+ + ", actual value: " + propertyValue);
};
PropertyValidator.prototype.addVersionValidator = function (propertyName, propertyValue, minComponents, maxComponents, allowSuffixes) {
@@ -347,7 +348,7 @@ var PropertyValidator = (function () {
}, "must be a version number with " + (minComponents === maxComponents
? minComponents : (minComponents + " to " + maxComponents))
+ (minComponents === maxComponents && minComponents === 1
- ? " component" : " components"));
+ ? " component" : " components") + ", actual value: " + propertyValue);
};
PropertyValidator.prototype.addFileNameValidator = function (propertyName, propertyValue) {
diff --git a/share/qbs/modules/java/JavaModule.qbs b/share/qbs/modules/java/JavaModule.qbs
index 5191d6497..71f7d8432 100644
--- a/share/qbs/modules/java/JavaModule.qbs
+++ b/share/qbs/modules/java/JavaModule.qbs
@@ -71,7 +71,7 @@ Module {
version: [compilerVersionMajor, compilerVersionMinor, compilerVersionPatch].join(".")
property string compilerVersion: jdkVersionProbe.version
? jdkVersionProbe.version[1] : undefined
- property var compilerVersionParts: compilerVersion ? compilerVersion.split(/[\._]/).map(function(item) { return parseInt(item, 10); }) : []
+ property var compilerVersionParts: JavaUtils.splitVersionString(compilerVersion)
property int compilerVersionMajor: compilerVersionParts[0]
property int compilerVersionMinor: compilerVersionParts[1]
property int compilerVersionPatch: compilerVersionParts[2]
@@ -178,7 +178,7 @@ Module {
if (Utilities.versionCompare(version, "9") < 0)
validator.setRequiredProperty("compilerVersionUpdate", compilerVersionUpdate);
validator.addVersionValidator("compilerVersion", compilerVersion
- ? compilerVersion.replace("_", ".") : undefined, 3, 4);
+ ? compilerVersion.replace("_", ".") : undefined, 1, 4);
validator.addRangeValidator("compilerVersionMajor", compilerVersionMajor, 1);
validator.addRangeValidator("compilerVersionMinor", compilerVersionMinor, 0);
validator.addRangeValidator("compilerVersionPatch", compilerVersionPatch, 0);
diff --git a/share/qbs/modules/java/utils.js b/share/qbs/modules/java/utils.js
index 52c0e880a..ae0c1356b 100644
--- a/share/qbs/modules/java/utils.js
+++ b/share/qbs/modules/java/utils.js
@@ -136,7 +136,7 @@ function findJdkVersion(compilerFilePath) {
var p = new Process();
try {
p.exec(compilerFilePath, ["-version"]);
- var re = /^javac (([0-9]+(?:\.[0-9]+){2,2})(_([0-9]+))?)$/m;
+ var re = /^javac (([0-9]+(?:\.[0-9]+){0,2})(_([0-9]+))?)$/m;
var match = p.readStdErr().trim().match(re);
if (!match)
match = p.readStdOut().trim().match(re);
@@ -147,6 +147,19 @@ function findJdkVersion(compilerFilePath) {
}
}
+function splitVersionString(compilerVersion) {
+ if (!compilerVersion)
+ return [];
+
+ var result = compilerVersion.split(/[\._]/).map(function(item) {
+ return parseInt(item, 10);
+ });
+ // special case, if javac -version returned "12" instead of "12.0.0"
+ if (result.length === 1)
+ result.push(0, 0);
+ return result;
+}
+
function supportsGeneratedNativeHeaderFiles(product) {
var compilerVersionMajor = ModUtils.moduleProperty(product, "compilerVersionMajor");
if (compilerVersionMajor === 1) {