Files
qt-creator/qbs/modules/libclang/libclang.qbs
Nikolai Kosjar 10958d88f6 Clang: Fix detection of clang with qbs
"res" was undefined.

Amends 2379007c17.

Change-Id: I3af0e94c70fcb6b5b1b8027383e767a5d9cd8238
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2019-01-03 10:42:40 +00:00

76 lines
3.2 KiB
QML

import qbs
import qbs.Environment
import qbs.File
import qbs.Utilities
import QtcFunctions
import "functions.js" as ClangFunctions
Module {
Probe {
id: clangProbe
property stringList hostOS: qbs.hostOS
property stringList targetOS: qbs.targetOS
property stringList toolchain: qbs.toolchain
property string llvmConfig
property string llvmVersion
property string llvmIncludeDir
property string llvmLibDir
property string llvmBinDir
property stringList llvmLibs
property stringList llvmToolingLibs
property stringList llvmToolingDefines
property stringList llvmToolingIncludes
property stringList llvmToolingCxxFlags
property stringList llvmFormattingLibs
property string llvmBuildMode
configure: {
llvmConfig = ClangFunctions.llvmConfig(hostOS, QtcFunctions);
llvmVersion = ClangFunctions.version(llvmConfig);
llvmIncludeDir = ClangFunctions.includeDir(llvmConfig);
llvmLibDir = ClangFunctions.libDir(llvmConfig);
llvmBinDir = ClangFunctions.binDir(llvmConfig);
llvmLibs = ClangFunctions.libraries(targetOS);
llvmToolingLibs = ClangFunctions.toolingLibs(llvmConfig, targetOS);
llvmBuildMode = ClangFunctions.buildMode(llvmConfig);
var toolingParams = ClangFunctions.toolingParameters(llvmConfig);
llvmToolingDefines = toolingParams.defines;
llvmToolingIncludes = toolingParams.includes;
llvmToolingCxxFlags = toolingParams.cxxFlags;
if (toolchain.contains("gcc"))
llvmToolingCxxFlags.push("-Wno-unused-parameter");
llvmFormattingLibs = ClangFunctions.formattingLibs(llvmConfig, QtcFunctions, targetOS);
found = llvmConfig && File.exists(llvmIncludeDir.concat("/clang-c/Index.h"));
}
}
property string llvmConfig: clangProbe.llvmConfig
property string llvmVersion: clangProbe.llvmVersion
property string llvmIncludeDir: clangProbe.llvmIncludeDir
property string llvmLibDir: clangProbe.llvmLibDir
property string llvmBinDir: clangProbe.llvmBinDir
property stringList llvmLibs: clangProbe.llvmLibs
property stringList llvmToolingLibs: clangProbe.llvmToolingLibs
property stringList llvmFormattingLibs: clangProbe.llvmFormattingLibs
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_ENABLE_CLANG_LIBTOOLING")
validate: {
if (!clangProbe.found) {
console.warn("No usable libclang version found."
+ " Set LLVM_INSTALL_DIR to build the Clang Code Model."
+ " For details, see"
+ " doc/src/editors/creator-only/creator-clang-codemodel.qdoc.");
throw new Error();
}
}
}