diff --git a/doc/src/editors/creator-clang-codemodel.qdoc b/doc/src/editors/creator-clang-codemodel.qdoc index e1797edba2a..bdc3331966a 100644 --- a/doc/src/editors/creator-clang-codemodel.qdoc +++ b/doc/src/editors/creator-clang-codemodel.qdoc @@ -96,7 +96,7 @@ \list 1 - \li Acquire Clang 3.6.0 or higher in one of the following ways: + \li Acquire Clang 3.6.2 or higher in one of the following ways: \list diff --git a/qbs/imports/QtcClangInstallation/functions.js b/qbs/imports/QtcClangInstallation/functions.js index cdb49c2d66f..5a342b3bae6 100644 --- a/qbs/imports/QtcClangInstallation/functions.js +++ b/qbs/imports/QtcClangInstallation/functions.js @@ -1,5 +1,5 @@ var File = loadExtension("qbs.File") -var MinimumLLVMVersion = "3.6.0" +var MinimumLLVMVersion = "3.6.2" function isSuitableLLVMConfig(llvmConfigCandidate, qtcFunctions, processOutputReader) { diff --git a/src/shared/clang/clang_installation.pri b/src/shared/clang/clang_installation.pri index 6e0ced06e84..c5b8739ef35 100644 --- a/src/shared/clang/clang_installation.pri +++ b/src/shared/clang/clang_installation.pri @@ -6,15 +6,21 @@ isEmpty(LLVM_INSTALL_DIR): error("No LLVM_INSTALL_DIR provided") defineReplace(extractVersion) { return($$replace(1, ^(\\d+\\.\\d+\\.\\d+)$, \\1)) } defineReplace(extractMajorVersion) { return($$replace(1, ^(\\d+)\\.\\d+\\.\\d+$, \\1)) } defineReplace(extractMinorVersion) { return($$replace(1, ^\\d+\\.(\\d+)\\.\\d+$, \\1)) } +defineReplace(extractPatchVersion) { return($$replace(1, ^\\d+\\.\\d+\\.(\\d+)$, \\1)) } defineTest(versionIsAtLeast) { actual_major_version = $$extractMajorVersion($$1) actual_minor_version = $$extractMinorVersion($$1) + actual_patch_version = $$extractPatchVersion($$1) required_min_major_version = $$2 required_min_minor_version = $$3 + required_min_patch_version = $$4 isEqual(actual_major_version, $$required_min_major_version) { - isEqual(actual_minor_version, $$required_min_minor_version): return(true) + isEqual(actual_minor_version, $$required_min_minor_version) { + isEqual(actual_patch_version, $$required_min_patch_version): return(true) + greaterThan(actual_patch_version, $$required_min_patch_version): return(true) + } greaterThan(actual_minor_version, $$required_min_minor_version): return(true) } greaterThan(actual_major_version, $$required_min_major_version): return(true) @@ -97,6 +103,6 @@ unix { } isEmpty(LLVM_VERSION): error("Cannot determine clang version at $$LLVM_INSTALL_DIR") -!versionIsAtLeast($$LLVM_VERSION, 3, 6): { - error("LLVM/Clang version >= 3.6.0 required, version provided: $$LLVM_VERSION") +!versionIsAtLeast($$LLVM_VERSION, 3, 6, 2): { + error("LLVM/Clang version >= 3.6.2 required, version provided: $$LLVM_VERSION") }