refs #937 Support for clazy.

This commit is contained in:
Mathew Sutcliffe
2017-04-15 01:11:56 +01:00
parent 69b75ad265
commit ce1730b453
2 changed files with 23 additions and 3 deletions

View File

@@ -203,8 +203,16 @@ clang_cl {
# QtCreator ships with a version of clang-cl,
# but we want to use the one in PATH instead.
system($$(SYSTEMROOT)\system32\where /q clang-cl) {
QMAKE_CC = $$system($$(SYSTEMROOT)\system32\where clang-cl)
system($$(SYSTEMROOT)\system32\where /q $$QMAKE_CXX) {
QMAKE_CC = $$system($$(SYSTEMROOT)\system32\where $$QMAKE_CXX)
QMAKE_CXX = $$QMAKE_CC
}
# Suppress warnings in Qt headers
QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH:-I$$system_path($$[QT_HOST_PREFIX])=/imsvc $$system_path($$[QT_HOST_PREFIX])) -Fo$obj $src
QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH:-I$$system_path($$[QT_HOST_PREFIX])=/imsvc $$system_path($$[QT_HOST_PREFIX])) -Fo$@ $<
QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH:-I$$system_path($$[QT_HOST_PREFIX])=/imsvc $$system_path($$[QT_HOST_PREFIX])) -Fo$@ @<<
QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH:-I$$system_path($$[QT_HOST_PREFIX])=/imsvc $$system_path($$[QT_HOST_PREFIX])) -Fo$obj $src
QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH:-I$$system_path($$[QT_HOST_PREFIX])=/imsvc $$system_path($$[QT_HOST_PREFIX])) -Fo$@ $<
QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH:-I$$system_path($$[QT_HOST_PREFIX])=/imsvc $$system_path($$[QT_HOST_PREFIX])) -Fo$@ @<<
}

View File

@@ -2,7 +2,7 @@ msvc:DEFINES *= _SCL_SECURE_NO_WARNINGS
# swift standard warnings
msvc:QMAKE_CXXFLAGS_WARN_ON *= /wd4351 /wd4661
clang_cl:QMAKE_CXXFLAGS_WARN_ON *= -Wall -Wextra -Wno-unknown-pragmas
clang_cl:QMAKE_CXXFLAGS_WARN_ON *= -Wall -Wextra -Wno-unknown-pragmas -Wno-undefined-inline
gcc:QMAKE_CXXFLAGS_WARN_ON *= -Woverloaded-virtual
gcc:QMAKE_CXXFLAGS_USE_PRECOMPILE = -Winvalid-pch $$QMAKE_CXXFLAGS_USE_PRECOMPILE
@@ -36,3 +36,15 @@ gcc {
QMAKE_CXXFLAGS_WARN_ON *= -Wsuggest-override
}
}
# clazy - Qt-aware linter
equals(QMAKE_CXX, clazy)|equals(QMAKE_CXX, clazy-cl) {
CLAZY_WARNINGS *= level3 no-reserve-candidates
# TODO: gradually fix issues so we can re-enable some of these warnings
CLAZY_WARNINGS *= no-inefficient-qlist-soft no-qstring-allocations
CLAZY_WARNINGS *= no-missing-qobject-macro no-ctor-missing-parent-argument
CLAZY_WARNINGS *= no-copyable-polymorphic no-function-args-by-value
QMAKE_CXXFLAGS_WARN_ON += -Xclang -plugin-arg-clang-lazy -Xclang $$join(CLAZY_WARNINGS, ",")
}