forked from qt-creator/qt-creator
Clang: enable clang tidy and clazy in code model
Set QTC_CLANG_PLUGINS_LOAD env variable to get diagnostics that come from libclang plugins. This functionality works after the patch is applied to clang repository and clang is properly built with it. Task-number: QTCREATORBUG-15157 Change-Id: Iefeee4dd115f3f43ddc6ed79452a1135e653def6 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
@@ -79,6 +79,12 @@ static QString creatorResourcePath()
|
||||
#endif
|
||||
}
|
||||
|
||||
static bool loadClangPlugins()
|
||||
{
|
||||
static bool load = qEnvironmentVariableIntValue("QTC_CLANG_PLUGINS_LOAD");
|
||||
return load;
|
||||
}
|
||||
|
||||
class LibClangOptionsBuilder final : public CompilerOptionsBuilder
|
||||
{
|
||||
public:
|
||||
@@ -96,6 +102,10 @@ public:
|
||||
void addExtraOptions() final
|
||||
{
|
||||
addDummyUiHeaderOnDiskIncludePath();
|
||||
if (loadClangPlugins()) {
|
||||
addTidyPlugin();
|
||||
addClazyPlugin();
|
||||
}
|
||||
add("-fmessage-length=0");
|
||||
add("-fdiagnostics-show-note-include-stack");
|
||||
add("-fmacro-backtrace-limit=0");
|
||||
@@ -123,6 +133,26 @@ private:
|
||||
if (!path.isEmpty())
|
||||
add(includeDirOption() + QDir::toNativeSeparators(path));
|
||||
}
|
||||
|
||||
void addClazyPlugin()
|
||||
{
|
||||
add("-Xclang");
|
||||
add("-add-plugin");
|
||||
add("-Xclang");
|
||||
add("clang-lazy");
|
||||
}
|
||||
|
||||
void addTidyPlugin()
|
||||
{
|
||||
add("-Xclang");
|
||||
add("-add-plugin");
|
||||
add("-Xclang");
|
||||
add("clang-tidy");
|
||||
add("-Xclang");
|
||||
add("-plugin-arg-clang-tidy");
|
||||
add("-Xclang");
|
||||
add("-checks='-*,clang-diagnostic-*,llvm-*,misc-*,-misc-unused-parameters,readability-identifier-naming'");
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user