diff options
author | Marco Bubke <marco.bubke@theqtcompany.com> | 2015-05-13 13:46:35 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@theqtcompany.com> | 2015-05-21 11:23:55 +0000 |
commit | 6f92ff2317c3f68becea8c644b3953bb4f5e1a48 (patch) | |
tree | f9a59dcad7451c35d755beb4ac5a1dbc41878c30 | |
parent | 4810bda13ae87255d991d4008f2f93018671309a (diff) | |
download | qt-creator-6f92ff2317c3f68becea8c644b3953bb4f5e1a48.tar.gz |
Add codemodelbackend qbs file
Change-Id: I163607127afa636bdd334b00809c4e0f8e62d6e5
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-rw-r--r-- | src/tools/codemodelbackend/codemodelbackend.qbs | 88 | ||||
-rw-r--r-- | src/tools/tools.qbs | 1 |
2 files changed, 89 insertions, 0 deletions
diff --git a/src/tools/codemodelbackend/codemodelbackend.qbs b/src/tools/codemodelbackend/codemodelbackend.qbs new file mode 100644 index 0000000000..6de2e59ecb --- /dev/null +++ b/src/tools/codemodelbackend/codemodelbackend.qbs @@ -0,0 +1,88 @@ +import qbs 1.0 +import qbs.File +import qbs.Process +import QtcProcessOutputReader + +QtcTool { + name: "codemodelbackend" + + Depends { name: "CodeModelBackEndIpc" } + + Group { + prefix: "ipcsource/" + files: [ + "*.h", + "*.cpp" + ] + } + + files: [ "codemodelbackendmain.cpp" ] + + property string llvmInstallDirFromEnv: qbs.getEnv("LLVM_INSTALL_DIR") + + property bool clangCompletion: true + property bool clangHighlighting: true + property bool clangIndexing: false + + property string llvmConfig: { + 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 + if (llvmInstallDirFromEnv) { + for (var i = 0; i < llvmConfigVariants.length; ++i) { + var variant = llvmInstallDirFromEnv + "/bin/" + llvmConfigVariants[i]; + if (File.exists(variant)) + return variant; + } + } + + // Find llvm-config* in PATH + var pathListString = qbs.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]; + if (File.exists(variant)) + return variant; + } + } + + return undefined; + } + condition: llvmConfig + + property string llvmIncludeDir: QtcProcessOutputReader.readOutput(llvmConfig, ["--includedir"]) + property string llvmLibDir: QtcProcessOutputReader.readOutput(llvmConfig, ["--libdir"]) + property string llvmVersion: QtcProcessOutputReader.readOutput(llvmConfig, ["--version"]) + .replace(/(\d+\.\d+\.\d+).*/, "$1") + + cpp.includePaths: base.concat(["ipcsource", llvmIncludeDir]) + cpp.libraryPaths: base.concat(llvmLibDir) + cpp.rpaths: cpp.libraryPaths + + property string llvmLib: "clang" + property stringList additionalLibraries: qbs.targetOS.contains("windows") + ? ["advapi32", "shell32"] : [] + cpp.dynamicLibraries: base.concat(llvmLib).concat(additionalLibraries) + + cpp.defines: { + var defines = base; + defines.push('CLANG_VERSION="' + llvmVersion + '"'); + defines.push('CLANG_RESOURCE_DIR="' + llvmLibDir + '/clang/' + llvmVersion + '/include"'); + if (clangCompletion) + defines.push("CLANG_COMPLETION"); + if (clangHighlighting) + defines.push("CLANG_HIGHLIGHTING"); + if (clangIndexing) + defines.push("CLANG_INDEXING"); + return defines; + } + + +} + + diff --git a/src/tools/tools.qbs b/src/tools/tools.qbs index faeb1cce12..d6bbbbe657 100644 --- a/src/tools/tools.qbs +++ b/src/tools/tools.qbs @@ -4,6 +4,7 @@ Project { name: "Tools" references: [ "buildoutputparser/buildoutputparser.qbs", + "codemodelbackend/codemodelbackend.qbs", "cplusplustools.qbs", "qtcdebugger/qtcdebugger.qbs", "qtcreatorcrashhandler/qtcreatorcrashhandler.qbs", |