qt5base-lts/mkspecs/features/qt_headersclean.prf
Sergio Ahumada e78643dc0a Replace old qt-project.org wiki with wiki.qt.io
Change-Id: If6c05a5b1f60e97c64f3d6b64041a84c3af82964
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-27 09:27:13 +00:00

48 lines
1.8 KiB
Plaintext

# The headersclean test attempts to ensure all public Qt headers
# abide by various rules.
#
# To use this test, create a project which contains nothing else than a
# QT= line with the modules you want to test (no presence conditionals needed),
# followed by load(qt_headersclean).
*-g++*: QMAKE_CXXFLAGS += -W -Wall -Wextra -Werror
# The flags here come from http://wiki.qt.io/?title=Coding_Conventions#Conventions_for_public_header_files
# -Wold-style-cast cannot be used, /usr/include/bits/byteswap.h defines the macro bswap_16 using C style casts :(
# -Wfloat-equal cannot be used, qrect.h and qvector2d.h do exact comparisons in isNull and operator==. Would need #pragmas.
*-g++*: QMAKE_CXXFLAGS += -Woverloaded-virtual -Wshadow -Wundef
# Other nice flags
*-g++*: QMAKE_CXXFLAGS += -Wnon-virtual-dtor -ansi -Wchar-subscripts -Wpointer-arith -Wformat-security
# Enable pedantic mode, but accept variadic macros and 'long long' usage.
*-g++*: QMAKE_CXXFLAGS += -Wno-long-long -Wno-variadic-macros -pedantic-errors
QMAKE_CXXFLAGS += -DQT_NO_CAST_TO_ASCII \
-DQT_NO_CAST_FROM_ASCII \
-DQT_STRICT_ITERATORS \
-DQT_NO_URL_CAST_FROM_STRING \
-DQT_NO_CAST_FROM_BYTEARRAY \
-DQT_NO_KEYWORDS \
-DQT_USE_FAST_CONCATENATION \
-DQT_USE_FAST_OPERATOR_PLUS
TARGET = tst_headersclean
includes =
for(q, QT) {
sq = $$replace(q, -private\$, )
qn = $$eval(QT.$${sq}.name)
isEmpty(qn): \
QT -= $$q
else: \
includes += "$${LITERAL_HASH}include <$$qn/$$qn>"
}
includes = $$join(includes, $$escape_expand(\\n))
testfile.input = $$PWD/data/headersclean/tst_headersclean.cpp.in
testfile.output = $$OUT_PWD/tst_headersclean.cpp
QMAKE_SUBSTITUTES += testfile
SOURCES += $$testfile.output