summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@theqtcompany.com>2015-05-13 13:46:35 +0200
committerNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2015-05-21 11:23:55 +0000
commit6f92ff2317c3f68becea8c644b3953bb4f5e1a48 (patch)
treef9a59dcad7451c35d755beb4ac5a1dbc41878c30
parent4810bda13ae87255d991d4008f2f93018671309a (diff)
downloadqt-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.qbs88
-rw-r--r--src/tools/tools.qbs1
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",