fix xcodebuilds without -sdk iphonesimulator

the order of the arguments passed to addExclusiveBuilds() determines the
name of the CONFIG flag which actually enables the mode. that is
historically fixed to iphonesimulator_and_iphoneos and we cannot just
change the order.

to get around this, add a new "overload" of the function which allows
specifying the flag independently from the order of the builds, and make
use of it in ios' resolve_config.prf.

amends d2b4a789c.

Change-Id: Ia3fabea0c0c30beae680b57e75bdcdf35ef6503d
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
bb10
Oswald Buddenhagen 2016-10-07 20:16:58 +02:00 committed by Oswald Buddenhagen
parent 6851cf52af
commit 59985b3c29
2 changed files with 13 additions and 9 deletions

View File

@ -1,12 +1,9 @@
defineTest(addExclusiveBuilds) {
lessThan(ARGC, 2): \
error("addExclusiveBuilds() requires at least two arguments")
!$$join(ARGS, _and_):!fix_output_dirs: \
defineTest(addExclusiveBuildsProper) {
!$$1:!fix_output_dirs: \
return(true)
for(build, ARGS) {
for(build, 2) {
isEmpty($${build}.name) {
$${build}.name = $$title($$build)
export($${build}.name)
@ -20,7 +17,7 @@ defineTest(addExclusiveBuilds) {
export($${build}.dir_affix)
}
$${build}.exclusive = $$ARGS
$${build}.exclusive = $$2
export($${build}.exclusive)
QMAKE_EXCLUSIVE_BUILDS += $$build
@ -33,6 +30,13 @@ defineTest(addExclusiveBuilds) {
return(true)
}
defineTest(addExclusiveBuilds) {
lessThan(ARGC, 2): \
error("addExclusiveBuilds() requires at least two arguments")
addExclusiveBuildsProper($$join(ARGS, _and_), $$ARGS)
}
# Default directories to process
QMAKE_DIR_REPLACE = OBJECTS_DIR MOC_DIR RCC_DIR PRECOMPILED_DIR QGLTF_DIR DESTDIR
QMAKE_DIR_REPLACE_SANE += QGLTF_DIR

View File

@ -29,9 +29,9 @@ macx-xcode {
# Switch the order to make sure that the first Makefile target is the right one
!contains(QT_CONFIG, simulator_and_device):contains(QMAKE_MAC_SDK, ^iphonesimulator.*): \
addExclusiveBuilds(iphonesimulator, iphoneos)
addExclusiveBuildsProper(iphonesimulator_and_iphoneos, iphonesimulator iphoneos)
else: \
addExclusiveBuilds(iphoneos, iphonesimulator)
addExclusiveBuildsProper(iphonesimulator_and_iphoneos, iphoneos iphonesimulator)
}
equals(TEMPLATE, subdirs) {