summaryrefslogtreecommitdiffstats
path: root/src/angle/src/config.pri
blob: 7aedbc92cb5216219bd711dae53d90ec6eb2a7aa (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
# 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 = $$PWD/../../3rdparty/angle
} else {
    !build_pass:message("Using external ANGLE from $$ANGLE_DIR")
}

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

win32 {
    GNUTOOLS_DIR=$$PWD/../../../../gnuwin32/bin
    exists($$GNUTOOLS_DIR/gperf.exe) {
        GNUTOOLS = "(set $$escape_expand(\\\")PATH=$$replace(GNUTOOLS_DIR, [/\\\\], $${QMAKE_DIR_SEP});%PATH%$$escape_expand(\\\"))"
    }
}

defineReplace(addGnuPath) {
    unset(gnuPath)
    gnuPath = $$1
    !isEmpty(gnuPath):!isEmpty(GNUTOOLS) {
        eval(gnuPath = $${GNUTOOLS} && $$gnuPath)
        silent: eval(gnuPath = @echo generating sources from ${QMAKE_FILE_IN} && $$val_escape($$gnuPath))
    }
    return($$gnuPath)
}

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

# Defines specifying the API version (0x0600 = Vista)
DEFINES +=  _WIN32_WINNT=0x0600 WINVER=0x0600

# ANGLE specific defines
DEFINES +=  ANGLE_DISABLE_TRACE \
            ANGLE_DISABLE_PERF \
            ANGLE_COMPILE_OPTIMIZATION_LEVEL=D3DCOMPILE_OPTIMIZATION_LEVEL0 \
            ANGLE_USE_NEW_PREPROCESSOR=1

# Force release builds for now. Debug builds of ANGLE will generate libraries with
# the 'd' library suffix, but this means that the library name no longer matches that
# listed in the DEF file which causes errors at runtime. Using the DEF is mandatory
# to generate the import library because the symbols are not marked with __declspec
# and therefore not exported by default. With the import library, the debug build is
# useless, so just disable until we can find another solution.
CONFIG -= debug
CONFIG += release

TARGET = $$qtLibraryTarget($$TARGET)

CONFIG(debug, debug|release) {
    DEFINES += _DEBUG
} else {
    DEFINES += NDEBUG
}

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

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

DESTDIR = $$QT_BUILD_TREE/lib
DLLDESTDIR = $$QT_BUILD_TREE/bin

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
    #   4512: 'class' : assignment operator could not be generated
    #   4702: unreachable code
    QMAKE_CFLAGS_WARN_ON    = -W4 -wd"4100" -wd"4127" -wd"4189" -wd"4239" -wd"4244" -wd"4245" -wd"4512" -wd"4702"
    QMAKE_CFLAGS_RELEASE    = -O2 -Oy- -MT  -Gy -GS -Gm-
    QMAKE_CFLAGS_DEBUG      = -Od -Oy- -MTd -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 =  -Wall -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

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

QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE