diff options
author | Nikolai Kosjar <nikolai.kosjar@theqtcompany.com> | 2015-08-03 14:08:58 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@theqtcompany.com> | 2015-08-04 09:25:53 +0000 |
commit | 5abfef609a1c9a337af2d888d5e5022ae24dbf68 (patch) | |
tree | 89048873e5c10619501320168847ff4f69270db8 /qbs | |
parent | ad332762df8f7695888fb39afbbd8cb0fd60b6b8 (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.js | 17 |
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; } } |