summaryrefslogtreecommitdiffstats
path: root/mkspecs/macx-ios-clang/features/xcodebuild.prf
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/macx-ios-clang/features/xcodebuild.prf')
-rw-r--r--mkspecs/macx-ios-clang/features/xcodebuild.prf90
1 files changed, 23 insertions, 67 deletions
diff --git a/mkspecs/macx-ios-clang/features/xcodebuild.prf b/mkspecs/macx-ios-clang/features/xcodebuild.prf
index 627e1e2930..b897432a43 100644
--- a/mkspecs/macx-ios-clang/features/xcodebuild.prf
+++ b/mkspecs/macx-ios-clang/features/xcodebuild.prf
@@ -14,80 +14,36 @@ RESOURCES =
INSTALLS =
QMAKE_EXTRA_COMPILERS =
-!build_pass {
- # Top level makefile that aggregates all exclusive builds
+!mkpath($$OUT_PWD): \
+ error("Failed to create $$OUT_PWD")
- !mkpath($$OUT_PWD): \
- error("Failed to create $$OUT_PWD")
+args =
+for(arg, QMAKE_ARGS): \
+ args += $$system_quote($$arg)
- 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")
- 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
- distclean_files += $${TARGET}.xcodeproj
+for(build, BUILDS): \
+ SUBTARGETS += $$eval($${build}.target)
+QMAKE_EXTRA_VARIABLES += SUBTARGETS
- # Pretend we have a target, even though our template is aux
- CONFIG += have_target
+CONFIG += no_default_goal_deps
-} else {
- # Leaf makefile for a single exclusive build
+QMAKE_EXTRA_INCLUDES += $$shell_quote($$QMAKESPEC/xcodebuild.mk)
- iphonesimulator: \
- sdk = iphonesimulator
- else: \
- sdk = iphoneos
+# Distclean
- debug: \
- cfg = debug
- else: \
- cfg = release
+distfiles = $${TARGET}.xcodeproj
+for(build, BUILDS): \
+ distfiles += $$title($$eval($${build}.target))
+distclean_xcodebuild.commands = -$(DEL_FILE) -R $$distfiles
- for(action, $$list(build install clean test)) {
- equals(action, build) {
- action_target_suffix =
- action_target = all
- } else: equals(action, test) {
- action_target_suffix = -check
- action_target = check
- } else {
- action_target_suffix = -$$action
- action_target = $$action
- }
-
- target = $${sdk}-$${cfg}$${action_target_suffix}
-
- xcodebuild = "xcodebuild $$action -scheme $(TARGET) -sdk $$sdk -configuration $$title($$cfg)"
-
- equals(action, test):equals(sdk, iphoneos) {
- AVAILABLE_DEVICE_IDS = "$(shell system_profiler SPUSBDataType | sed -n -E -e '/(iPhone|iPad|iPod)/,/Serial/s/ *Serial Number: *(.+)/\1/p')"
- CUSTOM_DEVICE_IDS = "$(filter $(EXPORT_AVAILABLE_DEVICE_IDS), $(IOS_TEST_DEVICE_IDS))"
- TEST_DEVICE_IDS = "$(strip $(if $(EXPORT_CUSTOM_DEVICE_IDS), $(EXPORT_CUSTOM_DEVICE_IDS), $(EXPORT_AVAILABLE_DEVICE_IDS)))"
-
- QMAKE_EXTRA_VARIABLES += AVAILABLE_DEVICE_IDS CUSTOM_DEVICE_IDS TEST_DEVICE_IDS
-
- xcodebuild = "@$(if $(EXPORT_TEST_DEVICE_IDS),"\
- "echo Running tests on $(words $(EXPORT_TEST_DEVICE_IDS)) device\\(s\\): && ("\
- "$(foreach deviceid, $(EXPORT_TEST_DEVICE_IDS),"\
- "(echo Testing on device ID '$(deviceid)' ... && $${xcodebuild} -destination 'platform=iOS,id=$(deviceid)' && echo) &&"\
- ") echo Tests completed successfully on all devices"\
- "), $(error No iOS devices connected, please connect at least one device that can be used for testing.))"
- }
-
- $${target}.commands = $$xcodebuild
- QMAKE_EXTRA_TARGETS += $$target
-
- $${action_target}.depends += $$target
- QMAKE_EXTRA_TARGETS *= $${action_target}
- }
-
- # Remove build dir
- distclean_files += $$title($$cfg)-$${sdk}
-}
-
-distclean_xcodebuild.commands = -$(DEL_FILE) -R $$distclean_files
-distclean.depends += distclean_xcodebuild
+distclean.depends += clean_all distclean_xcodebuild
QMAKE_EXTRA_TARGETS += distclean distclean_xcodebuild
+
+# Empty exclusive builds, we've set them up manually
+BUILDS =