summaryrefslogtreecommitdiff
path: root/qbs/modules/libclang/libclang.qbs
diff options
context:
space:
mode:
Diffstat (limited to 'qbs/modules/libclang/libclang.qbs')
-rw-r--r--qbs/modules/libclang/libclang.qbs24
1 files changed, 24 insertions, 0 deletions
diff --git a/qbs/modules/libclang/libclang.qbs b/qbs/modules/libclang/libclang.qbs
index 871b1e0f69..402e492217 100644
--- a/qbs/modules/libclang/libclang.qbs
+++ b/qbs/modules/libclang/libclang.qbs
@@ -1,5 +1,7 @@
import qbs
+import qbs.Environment
import qbs.File
+import qbs.Utilities
import QtcFunctions
import "functions.js" as ClangFunctions
@@ -12,6 +14,11 @@ Module {
property string llvmIncludeDir
property string llvmLibDir
property stringList llvmLibs
+ property stringList llvmToolingLibs
+ property stringList llvmToolingDefines
+ property stringList llvmToolingIncludes
+ property stringList llvmToolingCxxFlags
+ property string llvmBuildMode
configure: {
llvmConfig = ClangFunctions.llvmConfig(qbs, QtcFunctions);
@@ -19,6 +26,12 @@ Module {
llvmIncludeDir = ClangFunctions.includeDir(llvmConfig);
llvmLibDir = ClangFunctions.libDir(llvmConfig);
llvmLibs = ClangFunctions.libraries(qbs.targetOS);
+ llvmToolingLibs = ClangFunctions.toolingLibs(llvmConfig, qbs.targetOS);
+ llvmBuildMode = ClangFunctions.buildMode(llvmConfig);
+ var toolingParams = ClangFunctions.toolingParameters(llvmConfig);
+ llvmToolingDefines = toolingParams.defines;
+ llvmToolingIncludes = toolingParams.includes;
+ llvmToolingCxxFlags = toolingParams.cxxFlags;
found = llvmConfig && File.exists(llvmIncludeDir.concat("/clang-c/Index.h"));
}
}
@@ -28,6 +41,17 @@ Module {
property string llvmIncludeDir: clangProbe.llvmIncludeDir
property string llvmLibDir: clangProbe.llvmLibDir
property stringList llvmLibs: clangProbe.llvmLibs
+ property stringList llvmToolingLibs: clangProbe.llvmToolingLibs
+ property string llvmBuildMode: clangProbe.llvmBuildMode
+ property bool llvmBuildModeMatches: qbs.buildVariant === llvmBuildMode.toLowerCase()
+ property stringList llvmToolingDefines: clangProbe.llvmToolingDefines
+ property stringList llvmToolingIncludes: clangProbe.llvmToolingIncludes.filter(function(incl) {
+ return incl != llvmIncludeDir;
+ })
+ property stringList llvmToolingCxxFlags: clangProbe.llvmToolingCxxFlags
+ property bool toolingEnabled: !Environment.getEnv("QTC_NO_CLANG_LIBTOOLING")
+ && Utilities.versionCompare(llvmVersion, "3.9") > 0
+ && Utilities.versionCompare(llvmVersion, "4") < 0
validate: {
if (!clangProbe.found) {