diff --git a/mkspecs/features/common_pre.prf b/mkspecs/features/common_pre.prf index 75a3bea19..da544f1a6 100644 --- a/mkspecs/features/common_pre.prf +++ b/mkspecs/features/common_pre.prf @@ -130,12 +130,6 @@ equals(WORD_SIZE,64)|!win32: disableSwiftConfig(sims.fsx, sims.fs9) linux-g++: QMAKE_LFLAGS_DEBUG *= -rdynamic -################################ -# Suppress stupid warnings -################################ - -include(warnings.pri) - ################################ # Handle addresses larger than 2GB ################################ @@ -144,12 +138,27 @@ equals(WORD_SIZE,32) { win32-g++: QMAKE_LFLAGS *= -Wl,--large-address-aware } +################################ +# Support different clang drivers +################################ + +defineReplace(clangArg) { + clang_cl: return(/clang:$$1) + else: return($$1) +} + ################################ # Externals ################################ include(externals.pri) +################################ +# Enable useful warnings, disable stupid ones +################################ + +include(warnings.pri) + ################################ # Includes ################################ diff --git a/mkspecs/features/externals.pri b/mkspecs/features/externals.pri index f32c54196..5745c0fd2 100644 --- a/mkspecs/features/externals.pri +++ b/mkspecs/features/externals.pri @@ -39,6 +39,10 @@ else { QMAKE_CXXFLAGS += -idirafter $$EXTERNALSROOT/common/include } +llvm { + QMAKE_CXXFLAGS_WARN_ON *= $$clangArg(-isystem$$system_path($$EXTERNALSROOT/common/include)) +} + equals(WORD_SIZE,64) { EXTERNALS_BIN_DIR = $$EXTERNALSROOT/$$EXTERNALS_SPEC/64/bin EXTERNALS_LIB_DIR = $$EXTERNALSROOT/$$EXTERNALS_SPEC/64/lib diff --git a/mkspecs/features/libraries.pri b/mkspecs/features/libraries.pri index bd7c012a2..1674d8f9c 100644 --- a/mkspecs/features/libraries.pri +++ b/mkspecs/features/libraries.pri @@ -29,12 +29,15 @@ fsuipc { simconnect { DEFINES += SIMCONNECT_H_NOMANIFEST equals(WORD_SIZE,64) { - INCLUDEPATH *= $$EXTERNALSROOT/common/include/simconnect/P3D-v4 + SIMCONNECT_INCLUDE += $$EXTERNALSROOT/common/include/simconnect/P3D-v4 DEFINES += P3D_SDK_VERSION=400 } equals(WORD_SIZE,32) { - INCLUDEPATH *= $$EXTERNALSROOT/common/include/simconnect/FSX-XPack + SIMCONNECT_INCLUDE += $$EXTERNALSROOT/common/include/simconnect/FSX-XPack } + INCLUDEPATH *= $$SIMCONNECT_INCLUDE + gcc:QMAKE_CXXFLAGS_WARN_ON += -isystem $$SIMCONNECT_INCLUDE + llvm:QMAKE_CXXFLAGS_WARN_ON *= $$clangArg(-isystem$$system_path($$SIMCONNECT_INCLUDE)) } blackgui { diff --git a/mkspecs/features/warnings.pri b/mkspecs/features/warnings.pri index 221b322f5..3a6187e8e 100644 --- a/mkspecs/features/warnings.pri +++ b/mkspecs/features/warnings.pri @@ -6,13 +6,16 @@ msvc:QMAKE_CXXFLAGS_WARN_ON -= -w44996 clang_cl:QMAKE_CXXFLAGS_WARN_ON *= /W4 -Wno-unknown-pragmas -Wno-undefined-inline -Wno-self-assign-overloaded gcc:QMAKE_CXXFLAGS_WARN_ON *= -Woverloaded-virtual gcc:QMAKE_CXXFLAGS_USE_PRECOMPILE = -Winvalid-pch $$QMAKE_CXXFLAGS_USE_PRECOMPILE +gcc|llvm:QMAKE_CXXFLAGS_WARN_ON *= -Wzero-as-null-pointer-constant +gcc:QMAKE_CXXFLAGS_WARN_ON += -isystem $$[QT_INSTALL_HEADERS]/QtCore +llvm:QMAKE_CXXFLAGS_WARN_ON *= -Wno-system-headers # elevated warnings swiftConfig(allowNoisyWarnings) { llvm { QMAKE_CXXFLAGS_WARN_ON -= -Wno-self-assign-overloaded - QMAKE_CXXFLAGS_WARN_ON *= -Weverything --system-header-prefix=$$[QT_INSTALL_HEADERS] - QMAKE_CXXFLAGS_WARN_ON += -Wno-system-headers -Wno-c++98-compat-pedantic -Wno-class-varargs -Wno-covered-switch-default + QMAKE_CXXFLAGS_WARN_ON *= -Weverything $$clangArg(--system-header-prefix=$$[QT_INSTALL_HEADERS]) + QMAKE_CXXFLAGS_WARN_ON += -Wno-c++98-compat-pedantic -Wno-class-varargs -Wno-covered-switch-default QMAKE_CXXFLAGS_WARN_ON += -Wno-documentation -Wno-documentation-unknown-command -Wno-double-promotion -Wno-exit-time-destructors QMAKE_CXXFLAGS_WARN_ON += -Wno-gnu -Wno-missing-prototypes -Wno-newline-eof -Wno-padded -Wno-undefined-reinterpret-cast QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-macros -Wno-used-but-marked-unused -Wno-weak-template-vtables diff --git a/src/blackgui/blackgui.pro b/src/blackgui/blackgui.pro index 9b454e1ea..06d1e0a38 100644 --- a/src/blackgui/blackgui.pro +++ b/src/blackgui/blackgui.pro @@ -25,6 +25,10 @@ else { QMAKE_CXXFLAGS += -idirafter $$EXTERNALSROOT/common/include/qwt } +llvm { + QMAKE_CXXFLAGS_WARN_ON *= $$clangArg(-isystem$$system_path($$EXTERNALSROOT/common/include/qwt)) +} + # needed for "ShellScalingApi.h" only # win32 { LIBS *= -lSHCore }