156e3981db
26d44fce3d
added support for passing the configure options to qmake following a "--" argument. This interacted badly with xcodebuild.prf as the "args" variable would contain the standard qmake arguments AND the extra arguments following "--"... which were placed prior to -spec macx-xcode and the path of the .pro file, causing them to be ignored and thus qmake to print its usage when attempting to generate Xcode projects for Qt apps on UIKit platforms. Amends6a9f38a11d
, which fixed the same issue inside qmake itself. Change-Id: I3056bd811c2ce958952fec8e05ddef7a063c0646 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
66 lines
1.8 KiB
Plaintext
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 $$system_quote($$_PRO_FILE_) -spec macx-xcode $$args"
|
|
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 =
|