diff --git a/mkspecs/features/common_pre.prf b/mkspecs/features/common_pre.prf index c66076185..fbd32c2a0 100644 --- a/mkspecs/features/common_pre.prf +++ b/mkspecs/features/common_pre.prf @@ -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$@ @<< } diff --git a/mkspecs/features/warnings.pri b/mkspecs/features/warnings.pri index 92dcf018f..624d06782 100644 --- a/mkspecs/features/warnings.pri +++ b/mkspecs/features/warnings.pri @@ -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, ",") +}