summaryrefslogtreecommitdiffstats
path: root/features/strict_flags.prf
blob: cbfe2f69dba8b40c49c1985f690f8e9e6632c09a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# This functionality is opt-in via the STRICT environment variable
# export STRICT=1 on Unix
# set STRICT=1 on Windows
STRICT=$$(STRICT)
equals(STRICT,1) {
    win32 {
        QMAKE_CXXFLAGS+=-WX
    } else {
        QMAKE_CXXFLAGS+=-Werror
        QMAKE_CXXFLAGS+=-Wall
        # There are legitimate cases that conflict with this warning (QSensorFilter::filter)
        #QMAKE_CXXFLAGS+=-Woverloaded-virtual
        # This breaks in QML headers
        #QMAKE_CXXFLAGS+=-Wold-style-cast
        # This breaks in QML headers
        #QMAKE_CXXFLAGS+=-pedantic
        QMAKE_CXXFLAGS+=-ansi
        QMAKE_CXXFLAGS+=-Wno-long-long
        # This breaks in Qt headers
        #QMAKE_CXXFLAGS+=-Wshadow
        # This breaks everywhere
        #QMAKE_CXXFLAGS+=-Wunreachable-code
        QMAKE_CXXFLAGS+=-Wundef
        QMAKE_CXXFLAGS+=-Wformat-nonliteral
        QMAKE_CXXFLAGS+=-Wformat-security
        QMAKE_CXXFLAGS+=-Wcast-align
        QMAKE_CXXFLAGS+=-Wchar-subscripts
        # This breaks in Qt headers
        #QMAKE_CXXFLAGS+=-Wfloat-equal
        QMAKE_LFLAGS+=-Wl,-no-undefined
    }

    contains(TEMPLATE,lib) {
        DEFINES += QT_NO_CAST_FROM_ASCII QT_NO_CAST_TO_ASCII
        CONFIG += no_keywords
    }
}