From 31258ec5555d929f4cd33e2836e24b470cf6908b Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 16 Jun 2016 12:11:22 +0200 Subject: 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 Reviewed-by: Nikolai Kosjar --- qbs/imports/QtcClangInstallation/functions.js | 67 ---------------------- .../QtcProcessOutputReader/procoutputreader.js | 11 ---- 2 files changed, 78 deletions(-) delete mode 100644 qbs/imports/QtcClangInstallation/functions.js delete mode 100644 qbs/imports/QtcProcessOutputReader/procoutputreader.js (limited to 'qbs/imports') diff --git a/qbs/imports/QtcClangInstallation/functions.js b/qbs/imports/QtcClangInstallation/functions.js deleted file mode 100644 index 4c2019f149b..00000000000 --- 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 695a61ec88c..00000000000 --- 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; -} -- cgit v1.2.3