qt5base-lts/mkspecs/features/uikit/xcodebuild.prf
Jake Petroules 57378a108c Add support for Apple watchOS
Change-Id: I3f9e00569458a463af2eaa5a3a16a6afd1e9c1ea
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-08-19 21:05:55 +00:00

66 lines
1.8 KiB
Plaintext

# 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 can't just override
# MAKEFILE_GENERATOR. Instead, we generate the Xcode project by spawing a
# child qmake process with -spec macx-xcode and let the top level qmake
# process generate a wrapper makefile that forwards everything to xcodebuild.
TEMPLATE = aux
SOURCES =
OBJECTIVE_SOURCES =
RESOURCES =
INSTALLS =
QMAKE_EXTRA_COMPILERS =
!mkpath($$OUT_PWD): \
error("Failed to create $$OUT_PWD")
args =
for(arg, QMAKE_ARGS): \
args += $$system_quote($$arg)
cmd = "$$QMAKE_QMAKE $$args $$system_quote($$_PRO_FILE_) -spec macx-xcode"
debug(1, "Generating Xcode project in $$OUT_PWD using '$$cmd'")
system("cd $$system_quote($$OUT_PWD) && $$cmd")
# Subtargets
for(build, BUILDS): \
SUBTARGETS += $$eval($${build}.target)
QMAKE_EXTRA_VARIABLES += SUBTARGETS
CONFIG += no_default_goal_deps
DEVICE_SDK = $${device.sdk}
SIMULATOR_SDK = $${simulator.sdk}
ios {
DEVICE_FILTER = "iPhone|iPad"
GENERIC_DEVICE_DESTINATION = "generic/platform=iOS"
}
tvos {
DEVICE_FILTER = "Apple TV"
GENERIC_DEVICE_DESTINATION = "generic/platform=tvOS"
}
watchos {
DEVICE_FILTER = "Apple Watch"
GENERIC_DEVICE_DESTINATION = "generic/platform=watchOS"
}
QMAKE_EXTRA_VARIABLES += DEVICE_SDK SIMULATOR_SDK DEVICE_FILTER GENERIC_DEVICE_DESTINATION
QMAKE_EXTRA_INCLUDES += $$shell_quote($$PWD/xcodebuild.mk)
# Distclean
distfiles = $${TARGET}.xcodeproj
for(build, BUILDS): \
distfiles += $$title($$eval($${build}.target))
distclean_xcodebuild.commands = -$(DEL_FILE) -R $$distfiles
distclean.depends += clean_all distclean_xcodebuild
QMAKE_EXTRA_TARGETS += distclean distclean_xcodebuild
# Empty exclusive builds, we've set them up manually
BUILDS =