summaryrefslogtreecommitdiffstats
path: root/mkspecs/common/ios/arch.conf
blob: 3ac84081af96e69be0c90274b4c44ca1d6794394 (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
#
# Helper to set CPU architecture flags for iOS configurations
#

# Target architecture for iOS devices (armv7 or leave blank for default)
QMAKE_IOS_TARGET_ARCH =

###########################################################################

# Device?
!*simulator* {
    # ARMv7 architecture device is required for OpenGL/ES 2.x
    isEmpty(QMAKE_IOS_TARGET_ARCH): QMAKE_IOS_TARGET_ARCH = armv7

    # Samsung S5PC100, Apple A4, A5, A5X
    equals(QMAKE_IOS_TARGET_ARCH, "armv7") {
        # iOS CPU architecture (armv7)
        QMAKE_IOS_ARM_ARCH = __ARM_ARCH_7__

        # Thumb2 instructions
        QMAKE_IOS_ARM_FLAGS = -mthumb
        QMAKE_IOS_ARM_ARCH += __MARM_THUMB__

        # NEON instructions
        QMAKE_IOS_ARM_ARCH += __ARM_NEON__
    } else {
        # Unsupported architecture
        error("Invalid iOS target $${QMAKE_IOS_TARGET_ARCH}!")
    }
# Simulator is i386 only
} else: QMAKE_IOS_TARGET_ARCH = i386

# iOS architecture build flags
QMAKE_IOS_ARCH_FLAGS    = -arch $$QMAKE_IOS_TARGET_ARCH

QMAKE_CFLAGS           += $$QMAKE_IOS_ARCH_FLAGS
QMAKE_CXXFLAGS         += $$QMAKE_IOS_ARCH_FLAGS
QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_IOS_ARCH_FLAGS
QMAKE_LFLAGS           += $$QMAKE_IOS_ARCH_FLAGS

# Architecture specific defines/flags
!*simulator* {
    DEFINES            += $$QMAKE_IOS_ARM_ARCH
    QMAKE_CFLAGS       += $$QMAKE_IOS_ARM_FLAGS
    QMAKE_CXXFLAGS     += $$QMAKE_IOS_ARM_FLAGS
    QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_IOS_ARM_FLAGS
}

unset(QMAKE_IOS_TARGET_ARCH)
unset(QMAKE_IOS_ARCH_FLAGS)
unset(QMAKE_IOS_ARM_ARCH)
unset(QMAKE_IOS_ARM_FLAGS)