From ad23c58595f54484f45b00631dc62c6051228a47 Mon Sep 17 00:00:00 2001 From: Ivan Komissarov Date: Wed, 12 Jun 2019 19:50:10 +0200 Subject: Fix javac version detection It seems, that javac -version can return "12" instead of "12.0.0" Change-Id: I804cbadb410dc11f566fda122f3082a8607ebb36 Reviewed-by: Christian Kandeler --- share/qbs/modules/java/JavaModule.qbs | 4 ++-- share/qbs/modules/java/utils.js | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) (limited to 'share/qbs/modules/java') 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) { -- cgit v1.2.3