CONFIG(qt):contains(QT, gui):equals(TEMPLATE, app): CONFIG += gui_app isEmpty(MAKEFILE_GENERATOR) { gui_app:app_bundle: \ # For applications we want Xcode project files MAKEFILE_GENERATOR = XCODE else: \ # For libs, etc we still want regular Makefiles MAKEFILE_GENERATOR = UNIX } gui_app { # We have to do the link and dependency resolution for the platform plugin # manually, since QTPLUGIN and the prl lookup logic does not support # the -force_load link style. The -force_load option ensures that all # symbols from the static library are included, not just the ones the # linker have seen a use for so far. We need this because we load the platform # plugin from the platform plugin itself, using Q_IMPORT_PLUGIN. lib_path_and_base = $$[QT_INSTALL_PLUGINS/get]/platforms/libqios$$qtPlatformTargetSuffix() LIBS += -Wl,-force_load,$${lib_path_and_base}.$${QMAKE_EXTENSION_STATICLIB} LIBS += $$fromfile($${lib_path_and_base}.prl, QMAKE_PRL_LIBS) # Which means we don't want the auto-generated import for the platform plugin CONFIG -= import_qpa_plugin !no_main_wrapper { # We link the iosmain library manually as well, since it's not really a plugin lib_name = qiosmain lib_path_and_base = $$[QT_INSTALL_PLUGINS/get]/platforms/lib$${lib_name}$$qtPlatformTargetSuffix() LIBS += -L$$[QT_INSTALL_PLUGINS/get]/platforms -l$${lib_name}$$qtPlatformTargetSuffix() LIBS += $$fromfile($${lib_path_and_base}.prl, QMAKE_PRL_LIBS) DEFINES += main=qt_main } } contains(MAKEFILE_GENERATOR, XCODE) { ios_device_family.name = TARGETED_DEVICE_FAMILY ios_device_family.value = $$QMAKE_IOS_TARGETED_DEVICE_FAMILY QMAKE_MAC_XCODE_SETTINGS += ios_device_family } isEmpty(QT_ARCH) { # The iPhoneOS and iPhoneSimulator targets share the same toolchain, # so when configure runs the arch tests it passes the correct sysroot, # but we fail to pick up the architecture since we're not passing -arch # yet. Xcode does not seem to have a way to run the shared toolchain # in a way that will automatically do this (for example xcrun -sdk). contains(QMAKE_MAC_SDK, iphoneos.*): QT_ARCH = arm else: QT_ARCH = i386 # Simulator } # Be more specific about which architecture we're targeting equals(QT_ARCH, arm): \ actual_archs = armv7 else: \ actual_archs = $$QT_ARCH equals(MAKEFILE_GENERATOR, XCODE) { QMAKE_XCODE_ARCHS = $$actual_archs } else { for(arch, actual_archs): \ arch_flags += -arch $$arch QMAKE_CFLAGS += $$arch_flags QMAKE_CXXFLAGS += $$arch_flags QMAKE_OBJECTIVE_CFLAGS += $$arch_flags QMAKE_LFLAGS += $$arch_flags } unset(actual_archs) load(default_post)