qt5base-lts/mkspecs/features/ios/default_post.prf

70 lines
2.7 KiB
Plaintext
Raw Normal View History

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 += "-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 = armv7
else: QT_ARCH = i386 # Simulator
} else {
# Fix up the QT_ARCH to be more specific
equals(QT_ARCH, arm) {
# Samsung S5PC100, Apple A4, A5, A5X
QT_ARCH = armv7
# FIXME: How do we support armv7s when Qt can't do universal builds?
}
}
!equals(MAKEFILE_GENERATOR, XCODE) {
arch_flag = -arch $$QT_ARCH
QMAKE_CFLAGS += $$arch_flag
QMAKE_CXXFLAGS += $$arch_flag
QMAKE_OBJECTIVE_CFLAGS += $$arch_flag
QMAKE_LFLAGS += $$arch_flag
}
load(default_post)