Files
qt-creator/qbs/modules/libclang/libclang.qbs
Orgad Shaneh 8827d83115 Clang: Centralize -Wno-comment for GCC
It's also needed in clangrefactoringbackend, unittest etc...

Change-Id: I9c758d52b34798d75610a4633bc7c5e7ceb0c00b
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2019-04-23 15:34:01 +00:00

79 lines
3.4 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");
// clang/Format/Format.h has intentional multiline comments
llvmToolingCxxFlags.push("-Wno-comment");
}
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_DISABLE_CLANG_REFACTORING")
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();
}
}
}