aboutsummaryrefslogtreecommitdiffstats
path: root/qbs
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2015-08-03 14:08:58 +0200
committerNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2015-08-04 09:25:53 +0000
commit5abfef609a1c9a337af2d888d5e5022ae24dbf68 (patch)
tree89048873e5c10619501320168847ff4f69270db8 /qbs
parentad332762df8f7695888fb39afbbd8cb0fd60b6b8 (diff)
Clang: Check for required mininum LLVM/Clang version
...otherwise, if the compilation fails, the user is left without any hint. Change-Id: I753aefac0c9fbd24b148235e792fe3b3a2aea21b Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com> Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Diffstat (limited to 'qbs')
-rw-r--r--qbs/imports/QtcClangInstallation/functions.js17
1 files changed, 14 insertions, 3 deletions
diff --git a/qbs/imports/QtcClangInstallation/functions.js b/qbs/imports/QtcClangInstallation/functions.js
index d2b9736f3b1..f00b109a63c 100644
--- a/qbs/imports/QtcClangInstallation/functions.js
+++ b/qbs/imports/QtcClangInstallation/functions.js
@@ -1,6 +1,17 @@
var File = loadExtension("qbs.File")
+var MinimumLLVMVersion = "3.6.0"
-function llvmConfig(qbs)
+function isSuitableLLVMConfig(llvmConfigCandidate, qtcFunctions, processOutputReader)
+{
+ if (File.exists(llvmConfigCandidate)) {
+ var candidateVersion = version(llvmConfigCandidate, processOutputReader);
+ if (candidateVersion && candidateVersion.length)
+ return qtcFunctions.versionIsAtLeast(candidateVersion, MinimumLLVMVersion)
+ }
+ return false;
+}
+
+function llvmConfig(qbs, qtcFunctions, processOutputReader)
{
var llvmInstallDirFromEnv = qbs.getEnv("LLVM_INSTALL_DIR")
var llvmConfigVariants = [
@@ -12,7 +23,7 @@ function llvmConfig(qbs)
if (llvmInstallDirFromEnv) {
for (var i = 0; i < llvmConfigVariants.length; ++i) {
var variant = llvmInstallDirFromEnv + "/bin/" + llvmConfigVariants[i];
- if (File.exists(variant))
+ if (isSuitableLLVMConfig(variant, qtcFunctions, processOutputReader))
return variant;
}
}
@@ -24,7 +35,7 @@ function llvmConfig(qbs)
for (var i = 0; i < llvmConfigVariants.length; ++i) {
for (var j = 0; j < pathList.length; ++j) {
var variant = pathList[j] + "/" + llvmConfigVariants[i];
- if (File.exists(variant))
+ if (isSuitableLLVMConfig(variant, qtcFunctions, processOutputReader))
return variant;
}
}