diff options
author | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2016-06-16 12:11:22 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2016-06-17 13:33:03 +0000 |
commit | 31258ec5555d929f4cd33e2836e24b470cf6908b (patch) | |
tree | 4d4efcd1d238e9307739d56c3e0b6cd8125e6980 /qbs/imports | |
parent | 1ce258d71018ad10b63fb8a37e1b0f16d21b3793 (diff) |
qbs build: Introduce libclang module.
This is The Right Way to detect libclang. Using a Probe will also
slightly improve performance in qbs 1.6 due to the result caching.
Change-Id: I063a8d108d02b620dda2df75dd8c014c84f27ec7
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Diffstat (limited to 'qbs/imports')
-rw-r--r-- | qbs/imports/QtcClangInstallation/functions.js | 67 | ||||
-rw-r--r-- | qbs/imports/QtcProcessOutputReader/procoutputreader.js | 11 |
2 files changed, 0 insertions, 78 deletions
diff --git a/qbs/imports/QtcClangInstallation/functions.js b/qbs/imports/QtcClangInstallation/functions.js deleted file mode 100644 index 4c2019f149..0000000000 --- a/qbs/imports/QtcClangInstallation/functions.js +++ /dev/null @@ -1,67 +0,0 @@ -var Environment = loadExtension("qbs.Environment") -var File = loadExtension("qbs.File") -var MinimumLLVMVersion = "3.6.2" - -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 = Environment.getEnv("LLVM_INSTALL_DIR") - var llvmConfigVariants = [ - "llvm-config", "llvm-config-3.2", "llvm-config-3.3", "llvm-config-3.4", - "llvm-config-3.5", "llvm-config-3.6", "llvm-config-4.0", "llvm-config-4.1" - ]; - - // Prefer llvm-config* from LLVM_INSTALL_DIR - var suffix = qbs.hostOS.contains("windows") ? ".exe" : ""; - if (llvmInstallDirFromEnv) { - for (var i = 0; i < llvmConfigVariants.length; ++i) { - var variant = llvmInstallDirFromEnv + "/bin/" + llvmConfigVariants[i] + suffix; - if (isSuitableLLVMConfig(variant, qtcFunctions, processOutputReader)) - return variant; - } - } - - // Find llvm-config* in PATH - var pathListString = Environment.getEnv("PATH"); - var separator = qbs.hostOS.contains("windows") ? ";" : ":"; - var pathList = pathListString.split(separator); - for (var i = 0; i < llvmConfigVariants.length; ++i) { - for (var j = 0; j < pathList.length; ++j) { - var variant = pathList[j] + "/" + llvmConfigVariants[i] + suffix; - if (isSuitableLLVMConfig(variant, qtcFunctions, processOutputReader)) - return variant; - } - } - - return undefined; -} - -function includeDir(llvmConfig, processOutputReader) -{ - return processOutputReader.readOutput(llvmConfig, ["--includedir"]) -} - -function libDir(llvmConfig, processOutputReader) -{ - return processOutputReader.readOutput(llvmConfig, ["--libdir"]) -} - -function version(llvmConfig, processOutputReader) -{ - return processOutputReader.readOutput(llvmConfig, ["--version"]) - .replace(/(\d+\.\d+\.\d+).*/, "$1") -} - -function libraries(targetOS) -{ - return targetOS.contains("windows") ? ["libclang.lib", "advapi32.lib", "shell32.lib"] : ["clang"] -} diff --git a/qbs/imports/QtcProcessOutputReader/procoutputreader.js b/qbs/imports/QtcProcessOutputReader/procoutputreader.js deleted file mode 100644 index 695a61ec88..0000000000 --- a/qbs/imports/QtcProcessOutputReader/procoutputreader.js +++ /dev/null @@ -1,11 +0,0 @@ -var Process = loadExtension("qbs.Process") - -function readOutput(executable, args) -{ - var p = new Process(); - var output = ""; - if (p.exec(executable, args, false) !== -1) - output = p.readStdOut().trim(); // Trailing newline. - p.close(); - return output; -} |