summaryrefslogtreecommitdiffstats
path: root/mkspecs/macx-ios-clang
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@digia.com>2015-03-05 16:13:57 +0100
committerTor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>2015-03-09 13:01:28 +0000
commit3d7a0111e3d72b39c3e5f04ca9d634ed9c151cba (patch)
treee6afa15f5c9a8e9f47566984ff17914467528131 /mkspecs/macx-ios-clang
parent17d690952b404d46640115d6c037dacbcf3de0f4 (diff)
iOS: Auto-detect available devices when running make check for testing
Change-Id: I447d8faf421c31de68dde64211b795eaccec17a4 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Diffstat (limited to 'mkspecs/macx-ios-clang')
-rw-r--r--mkspecs/macx-ios-clang/features/default_post.prf18
1 files changed, 17 insertions, 1 deletions
diff --git a/mkspecs/macx-ios-clang/features/default_post.prf b/mkspecs/macx-ios-clang/features/default_post.prf
index a2c181a55d..b0f8b14811 100644
--- a/mkspecs/macx-ios-clang/features/default_post.prf
+++ b/mkspecs/macx-ios-clang/features/default_post.prf
@@ -97,8 +97,24 @@ equals(TEMPLATE, app) {
target = $${sdk}-$${cfg}$${action_target_suffix}
- $${target}.commands = "xcodebuild $$action -scheme $(TARGET) -sdk $$sdk -configuration $$title($$cfg)"
+ 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