summaryrefslogtreecommitdiffstats
path: root/src/angle/src/config.pri
blob: fddb395ab25f796fad24cdab2b70478a089f872b (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# This file contains build options that are relevant for both the compilers
# and the khronos implementation libraries.

ANGLE_DIR = $$(ANGLE_DIR)
isEmpty(ANGLE_DIR) {
    ANGLE_DIR = $$absolute_path(../../3rdparty/angle)
} else {
    !build_pass:message("Using external ANGLE from $$ANGLE_DIR")
}

!exists($$ANGLE_DIR/src) {
    error("$$ANGLE_DIR does not contain ANGLE")
}

equals(QMAKE_HOST.os, Windows) {
    gnutools.value = $$absolute_path(../../../../gnuwin32/bin)
    exists($$gnutools.value/gperf.exe) {
        gnutools.name = PATH
        gnutools.CONFIG = always_prepend
    }
}

defineReplace(addGnuPath) {
    gnuPath = $$1
    !isEmpty(gnuPath):!isEmpty(gnutools.name) {
        QT_TOOL_NAME = $$1
        qtAddToolEnv(gnuPath, gnutools)
        silent: gnuPath = @echo generating sources from ${QMAKE_FILE_IN} && $$gnuPath
    }
    return($$gnuPath)
}

# Defines for modifying Win32 headers
DEFINES +=  _WINDOWS \
            _UNICODE \
            _CRT_SECURE_NO_DEPRECATE \
            _HAS_EXCEPTIONS=0 \
            NOMINMAX \
            WIN32_LEAN_AND_MEAN=1

CONFIG += angle_d3d11 # Remove to disable D3D11 renderer

equals(QMAKE_TARGET_OS, xp): CONFIG -= angle_d3d11

angle_d3d11 {
    DEFINES += ANGLE_ENABLE_D3D11 ANGLE_DEFAULT_D3D11=1
    !build_pass: message("Enabling D3D11 mode for ANGLE")
}

CONFIG(debug, debug|release) {
    DEFINES += _DEBUG
} else {
    !static: CONFIG += rtti_off
    DEFINES += NDEBUG
}

!isEmpty(BUILD_PASS): BUILDSUBDIR = $$lower($$BUILD_PASS)/

# c++11 is needed by MinGW to get support for unordered_map.
CONFIG += stl exceptions c++11

INCLUDEPATH += . .. $$PWD/../include

msvc {
    # Disabled Warnings:
    #   4100: 'identifier' : unreferenced formal parameter
    #   4127: conditional expression is constant
    #   4189: 'identifier' : local variable is initialized but not referenced
    #   4239: nonstandard extension used : 'token' : conversion from 'type' to 'type'
    #   4244: 'argument' : conversion from 'type1' to 'type2', possible loss of data
    #   4245: 'conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch
    #   4267: coversion from 'size_t' to 'int', possible loss of data
    #   4275: non - DLL-interface classkey 'identifier' used as base for DLL-interface classkey 'identifier'
    #   4480: nonstandard extension used: specifying underlying type for enum
    #   4512: 'class' : assignment operator could not be generated
    #   4702: unreachable code
    #   4996: Function call with parameters that may be unsafe
    QMAKE_CFLAGS_WARN_ON    -= -W3
    QMAKE_CFLAGS_WARN_ON    += -W4 -wd"4100" -wd"4127" -wd"4189" -wd"4239" -wd"4244" -wd"4245" -wd"4267" -wd"4275" -wd"4512" -wd"4702" -wd"4996" -wd"4480"
    # Optimizations
    #   /Oy:   Omits frame pointer (x86 only).
    #   /Gy:   Enables function-level linking.
    #   /GS:   Buffers security check.
    #   /Gm-:  Disable minimal rebuild.
    #   /RTC1: Run time error checking
    QMAKE_CFLAGS_RELEASE    += -Oy- -Gy -GS -Gm-
    QMAKE_CFLAGS_DEBUG      += -Oy- -Gy -GS -Gm- -RTC1
    QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO = -Zi $$QMAKE_CFLAGS_RELEASE

    QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
}

gcc {
    QMAKE_CFLAGS_WARN_ON += -Wno-unknown-pragmas -Wno-comment -Wno-missing-field-initializers \
                            -Wno-switch -Wno-unused-parameter -Wno-write-strings -Wno-sign-compare -Wno-missing-braces \
                            -Wno-unused-but-set-variable -Wno-unused-variable -Wno-narrowing -Wno-maybe-uninitialized \
                            -Wno-strict-aliasing -Wno-type-limits -Wno-unused-local-typedefs

    QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -Wno-reorder -Wno-conversion-null -Wno-delete-non-virtual-dtor

    sse2: QMAKE_CXXFLAGS += -march=native
}

QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE

load(qt_helper_lib)