92 lines
3.2 KiB
Plaintext
92 lines
3.2 KiB
Plaintext
#Turn on compilers warnings.
|
||
unix {
|
||
*g++*{
|
||
QMAKE_CXXFLAGS += \
|
||
# Key -isystem disable checking errors in system headers.
|
||
-isystem "$${OUT_PWD}/$${UI_DIR}" \
|
||
-isystem "$${OUT_PWD}/$${MOC_DIR}" \
|
||
-isystem "$${OUT_PWD}/$${RCC_DIR}" \
|
||
$$GCC_DEBUG_CXXFLAGS # See common.pri for more details.
|
||
|
||
checkWarnings{ # For enable run qmake with CONFIG+=checkWarnings
|
||
QMAKE_CXXFLAGS += -Werror
|
||
}
|
||
|
||
win32:equals(QT_MAJOR_VERSION, 5):equals(QT_MINOR_VERSION, 6) {
|
||
QMAKE_CXXFLAGS += \
|
||
-Wno-array-bounds
|
||
}
|
||
|
||
noAddressSanitizer{ # For enable run qmake with CONFIG+=noAddressSanitizer
|
||
# do nothing
|
||
} else {
|
||
CONFIG(debug, debug|release){
|
||
# Debug mode
|
||
#gcc’s 4.8.0 Address Sanitizer
|
||
#http://blog.qt.digia.com/blog/2013/04/17/using-gccs-4-8-0-address-sanitizer-with-qt/
|
||
QMAKE_CXXFLAGS += -fsanitize=address -fno-omit-frame-pointer
|
||
QMAKE_CFLAGS += -fsanitize=address -fno-omit-frame-pointer
|
||
QMAKE_LFLAGS += -fsanitize=address
|
||
}
|
||
}
|
||
|
||
gccUbsan{ # For enable run qmake with CONFIG+=gccUbsan
|
||
CONFIG(debug, debug|release){
|
||
# Debug mode
|
||
#gcc’s 4.9.0 Undefined Behavior Sanitizer (ubsan)
|
||
QMAKE_CXXFLAGS += -fsanitize=undefined
|
||
QMAKE_CFLAGS += -fsanitize=undefined
|
||
QMAKE_LFLAGS += -fsanitize=undefined
|
||
}
|
||
}
|
||
}
|
||
|
||
*clang*{
|
||
QMAKE_CXXFLAGS += \
|
||
# Key -isystem disable checking errors in system headers.
|
||
-isystem "$${OUT_PWD}/$${UI_DIR}" \
|
||
-isystem "$${OUT_PWD}/$${MOC_DIR}" \
|
||
-isystem "$${OUT_PWD}/$${RCC_DIR}" \
|
||
$$CLANG_DEBUG_CXXFLAGS \# See common.pri for more details.
|
||
-Wno-gnu-zero-variadic-macro-arguments\ # See macros qCCritical
|
||
|
||
checkWarnings{ # For enable run qmake with CONFIG+=checkWarnings
|
||
QMAKE_CXXFLAGS += -Werror
|
||
}
|
||
|
||
# -isystem key works only for headers. In some cases it's not enough. But we can't delete this warnings and
|
||
# want them in global list. Compromise decision delete them from local list.
|
||
QMAKE_CXXFLAGS -= \
|
||
-Wundefined-reinterpret-cast \
|
||
-Wmissing-prototypes # rcc folder
|
||
}
|
||
|
||
*-icc-*{
|
||
QMAKE_CXXFLAGS += \
|
||
-isystem "$${OUT_PWD}/$${UI_DIR}" \
|
||
-isystem "$${OUT_PWD}/$${MOC_DIR}" \
|
||
-isystem "$${OUT_PWD}/$${RCC_DIR}" \
|
||
$$ICC_DEBUG_CXXFLAGS
|
||
|
||
checkWarnings{ # For enable run qmake with CONFIG+=checkWarnings
|
||
QMAKE_CXXFLAGS += -Werror
|
||
}
|
||
}
|
||
} else { # Windows
|
||
*g++*{
|
||
QMAKE_CXXFLAGS += $$GCC_DEBUG_CXXFLAGS # See common.pri for more details.
|
||
|
||
checkWarnings{ # For enable run qmake with CONFIG+=checkWarnings
|
||
QMAKE_CXXFLAGS += -Werror
|
||
}
|
||
}
|
||
|
||
*msvc*{
|
||
QMAKE_CXXFLAGS += $$MSVC_DEBUG_CXXFLAGS # See common.pri for more details.
|
||
|
||
checkWarnings{ # For enable run qmake with CONFIG+=checkWarnings
|
||
QMAKE_CXXFLAGS += -WX
|
||
}
|
||
}
|
||
}
|