77 lines
2.7 KiB
Plaintext
77 lines
2.7 KiB
Plaintext
|
|
equals(TEMPLATE, app) {
|
|
qt:app_bundle:!macx-xcode {
|
|
# For Qt applications we want Xcode project files as the generated output,
|
|
# but since qmake doesn't handle the transition between makefiles and Xcode
|
|
# project files (which happens when using subdirs), we create a wrapper
|
|
# makefile that takes care of generating the Xcode project, and allows
|
|
# building by calling out to xcodebuild.
|
|
TEMPLATE = aux
|
|
|
|
CONFIG -= have_target qt staticlib dll
|
|
SOURCES =
|
|
RESOURCES =
|
|
INSTALLS =
|
|
|
|
TARGET_XCODE_PROJECT_DIR = $${TARGET}.xcodeproj
|
|
|
|
system("cd $$system_quote($$OUT_PWD) && $${QMAKE_QMAKE} $$system_quote($$_PRO_FILE_) -spec macx-xcode")
|
|
|
|
# We use xcodebuild to do the actual build, but filter out the verbose
|
|
# output that shows all environment variables for each build step.
|
|
xcodebuild_build.commands = "@xcodebuild build | grep -v setenv"
|
|
QMAKE_EXTRA_TARGETS += xcodebuild_build
|
|
all.depends = xcodebuild_build
|
|
QMAKE_EXTRA_TARGETS += all
|
|
|
|
# We do the same for the clean action
|
|
xcodebuild_clean.commands = "@xcodebuild clean"
|
|
QMAKE_EXTRA_TARGETS += xcodebuild_clean
|
|
clean.depends = xcodebuild_clean
|
|
QMAKE_EXTRA_TARGETS += clean
|
|
|
|
# And distclean
|
|
xcodebuild_distclean.commands = "$(DEL_FILE) -R $$TARGET_XCODE_PROJECT_DIR"
|
|
QMAKE_EXTRA_TARGETS += xcodebuild_distclean
|
|
distclean.depends = xcodebuild_distclean
|
|
QMAKE_EXTRA_TARGETS += distclean
|
|
}
|
|
}
|
|
|
|
macx-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
|
|
|
|
macx-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)
|