Add some interesting warning options to the compilation

This should help improve the cleanliness of our source code, including
compliance with the C++ standards. They apply to all of our code except
examples (they don't load qt_common.prf).

Change-Id: Ia0aac2f09e9245339951ffff13c94663c1901766
Reviewed-by: David Faure <david.faure@kdab.com>
This commit is contained in:
Thiago Macieira 2015-03-07 09:09:11 -08:00
parent d730281753
commit d386ec1fd8
2 changed files with 17 additions and 1 deletions

View File

@ -44,6 +44,21 @@ contains(TEMPLATE, .*lib) {
QMAKE_PRL_INSTALL_REPLACE += lib_replace
}
# Extra warnings for Qt non-example code, to ensure cleanliness of the sources.
# The block below may turn these warnings into errors for some Qt targets.
# -Wdate-time: warn if we use __DATE__ or __TIME__ (we want to be able to reproduce the exact same binary)
# -Wvla: use of variable-length arrays (an extension to C++)
clang {
# Clang 3.5 introduced -Wdate-time
# The conditional assumes we aren't compiling against Clang 2.x anymore
greaterThan(QT_CLANG_MAJOR_VERSION, 3)|greaterThan(QT_CLANG_MINOR_VERSION, 4): \
QMAKE_CXXFLAGS_WARN_ON += -Wdate-time
} else: gcc:!intel_icc {
QMAKE_CXXFLAGS_WARN_ON += -Wvla
# GCC 5 introduced -Wdate-time
greaterThan(QT_GCC_MAJOR_VERSION, 4): QMAKE_CXXFLAGS_WARN_ON += -Wdate-time
}
warnings_are_errors:warning_clean {
# If the module declares that it has does its clean-up of warnings, enable -Werror.
# This setting is compiler-dependent anyway because it depends on the version of the

View File

@ -124,7 +124,8 @@ headersclean:!internal_module {
hcleanFLAGS -= -Wshadow
}
} else {
hcleanFLAGS += -Wchar-subscripts
# options accepted by GCC and Clang
hcleanFLAGS += -Wchar-subscripts -Wold-style-cast
!contains(QT_ARCH, arm):!contains(QT_ARCH, mips): \
hcleanFLAGS += -Wcast-align