84 lines
2.9 KiB
Plaintext
84 lines
2.9 KiB
Plaintext
|
#Turn on compilers warnings.
|
|||
|
unix {
|
|||
|
*g++*{
|
|||
|
QMAKE_CXXFLAGS += \
|
|||
|
# Key -isystem disable checking errors in system headers.
|
|||
|
-isystem "$${OUT_PWD}/$${MOC_DIR}" \
|
|||
|
$$GCC_DEBUG_CXXFLAGS # See common.pri for more details.
|
|||
|
|
|||
|
checkWarnings{ # For enable run qmake with CONFIG+=checkWarnings
|
|||
|
QMAKE_CXXFLAGS += -Werror
|
|||
|
}
|
|||
|
|
|||
|
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
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
# -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 -= \
|
|||
|
-Wswitch-default
|
|||
|
}
|
|||
|
|
|||
|
*clang*{
|
|||
|
QMAKE_CXXFLAGS += \
|
|||
|
# Key -isystem disable checking errors in system headers.
|
|||
|
-isystem "$${OUT_PWD}/$${MOC_DIR}" \
|
|||
|
$$CLANG_DEBUG_CXXFLAGS # See common.pri for more details.
|
|||
|
|
|||
|
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 these warnings and
|
|||
|
# want them in global list. Compromise decision delete them from local list.
|
|||
|
QMAKE_CXXFLAGS -= \
|
|||
|
-Wundefined-reinterpret-cast
|
|||
|
}
|
|||
|
|
|||
|
*-icc-*{
|
|||
|
QMAKE_CXXFLAGS += \
|
|||
|
-isystem "$${OUT_PWD}/$${MOC_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
|
|||
|
}
|
|||
|
}
|
|||
|
}
|