From 603628b1ea1a4003f6295fd97025bd38520af143 Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Tue, 30 Aug 2016 10:26:57 -0700 Subject: [PATCH] Make DEVICE_ARCHS and SIMULATOR_ARCHS variables platform independent This reduces unnecessary OS conditions in qmake since these platforms are mutually exclusive, and also opens up their potential for use on macOS to transparently support multi-arch builds like UIKit platforms. This is also more similar to what Xcode does, as the DEPLOYMENT_TARGET variables are platform specific, while the ARCHS variable is not. DEPLOYMENT_TARGET has a use case for being OS specific in qmake (host tools vs targets), while ARCHS does not. Change-Id: Icee838a39e84259c2089faff08cc11d5f849758d Reviewed-by: Lars Knoll --- mkspecs/features/mac/sdk.prf | 11 ++++----- mkspecs/features/uikit/default_post.prf | 31 +++++-------------------- mkspecs/macx-ios-clang/qmake.conf | 4 ++-- mkspecs/macx-tvos-clang/qmake.conf | 4 ++-- mkspecs/macx-watchos-clang/qmake.conf | 4 ++-- 5 files changed, 17 insertions(+), 37 deletions(-) diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf index 1db1db7b26..0d43fbe5a1 100644 --- a/mkspecs/features/mac/sdk.prf +++ b/mkspecs/features/mac/sdk.prf @@ -50,13 +50,12 @@ for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_ !equals(MAKEFILE_GENERATOR, XCODE) { uikit:!host_buildĀ { - ios: os_var = IOS - tvos: os_var = TVOS - watchos: os_var = WATCHOS + ios: deployment_target = $$QMAKE_IOS_DEPLOYMENT_TARGET + tvos: deployment_target = $$QMAKE_TVOS_DEPLOYMENT_TARGET + watchos: deployment_target = $$QMAKE_WATCHOS_DEPLOYMENT_TARGET - deployment_target = $$eval(QMAKE_$${os_var}_DEPLOYMENT_TARGET) - !simulator|simulator_and_device: device_archs = $$eval(QMAKE_$${os_var}_DEVICE_ARCHS) - simulator: simulator_archs = $$eval(QMAKE_$${os_var}_SIMULATOR_ARCHS) + !simulator|simulator_and_device: device_archs = $$QMAKE_APPLE_DEVICE_ARCHS + simulator: simulator_archs = $$QMAKE_APPLE_SIMULATOR_ARCHS archs = $$device_archs $$simulator_archs QMAKE_XARCH_CFLAGS = diff --git a/mkspecs/features/uikit/default_post.prf b/mkspecs/features/uikit/default_post.prf index b4de83d6b5..f34d0a9f2c 100644 --- a/mkspecs/features/uikit/default_post.prf +++ b/mkspecs/features/uikit/default_post.prf @@ -68,21 +68,10 @@ macx-xcode { macx-xcode { arch_device.name = "ARCHS[sdk=$${device.sdk}*]" arch_simulator.name = "ARCHS[sdk=$${simulator.sdk}*]" - ios { - arch_device.value = $$QMAKE_IOS_DEVICE_ARCHS - arch_simulator.value = $$QMAKE_IOS_SIMULATOR_ARCHS - QMAKE_XCODE_ARCHS = $$QMAKE_IOS_DEVICE_ARCHS $$QMAKE_IOS_SIMULATOR_ARCHS - } - tvos { - arch_device.value = $$QMAKE_TVOS_DEVICE_ARCHS - arch_simulator.value = $$QMAKE_TVOS_SIMULATOR_ARCHS - QMAKE_XCODE_ARCHS = $$QMAKE_TVOS_DEVICE_ARCHS $$QMAKE_TVOS_SIMULATOR_ARCHS - } - watchos { - arch_device.value = $$QMAKE_WATCHOS_DEVICE_ARCHS - arch_simulator.value = $$QMAKE_WATCHOS_SIMULATOR_ARCHS - QMAKE_XCODE_ARCHS = $$QMAKE_WATCHOS_DEVICE_ARCHS $$QMAKE_WATCHOS_SIMULATOR_ARCHS - } + + arch_device.value = $$QMAKE_APPLE_DEVICE_ARCHS + arch_simulator.value = $$QMAKE_APPLE_SIMULATOR_ARCHS + QMAKE_XCODE_ARCHS = $$QMAKE_APPLE_DEVICE_ARCHS $$QMAKE_APPLE_SIMULATOR_ARCHS QMAKE_MAC_XCODE_SETTINGS += arch_device arch_simulator @@ -92,16 +81,8 @@ macx-xcode { QMAKE_MAC_XCODE_SETTINGS += only_active_arch } else { VALID_ARCHS = - !simulator|simulator_and_device { - ios: VALID_ARCHS += $$QMAKE_IOS_DEVICE_ARCHS - tvos: VALID_ARCHS += $$QMAKE_TVOS_DEVICE_ARCHS - watchos: VALID_ARCHS += $$QMAKE_WATCHOS_DEVICE_ARCHS - } - simulator { - ios: VALID_ARCHS += $$QMAKE_IOS_SIMULATOR_ARCHS - tvos: VALID_ARCHS += $$QMAKE_TVOS_SIMULATOR_ARCHS - watchos: VALID_ARCHS += $$QMAKE_WATCHOS_SIMULATOR_ARCHS - } + !simulator|simulator_and_device: VALID_ARCHS += $$QMAKE_APPLE_DEVICE_ARCHS + simulator: VALID_ARCHS += $$QMAKE_APPLE_SIMULATOR_ARCHS single_arch: VALID_ARCHS = $$first(VALID_ARCHS) diff --git a/mkspecs/macx-ios-clang/qmake.conf b/mkspecs/macx-ios-clang/qmake.conf index 94eff0d237..5df225466f 100644 --- a/mkspecs/macx-ios-clang/qmake.conf +++ b/mkspecs/macx-ios-clang/qmake.conf @@ -7,8 +7,8 @@ QMAKE_IOS_DEPLOYMENT_TARGET = 7.0 # Universal target (iPhone and iPad) QMAKE_IOS_TARGETED_DEVICE_FAMILY = 1,2 -QMAKE_IOS_DEVICE_ARCHS = armv7 arm64 -QMAKE_IOS_SIMULATOR_ARCHS = i386 x86_64 +QMAKE_APPLE_DEVICE_ARCHS = armv7 arm64 +QMAKE_APPLE_SIMULATOR_ARCHS = i386 x86_64 include(../common/ios.conf) include(../common/gcc-base-mac.conf) diff --git a/mkspecs/macx-tvos-clang/qmake.conf b/mkspecs/macx-tvos-clang/qmake.conf index f389382450..8038ae6846 100644 --- a/mkspecs/macx-tvos-clang/qmake.conf +++ b/mkspecs/macx-tvos-clang/qmake.conf @@ -8,8 +8,8 @@ INCLUDEPATH += $$PWD/tvos QMAKE_TVOS_TARGETED_DEVICE_FAMILY = 3 -QMAKE_TVOS_DEVICE_ARCHS = arm64 -QMAKE_TVOS_SIMULATOR_ARCHS = x86_64 +QMAKE_APPLE_DEVICE_ARCHS = arm64 +QMAKE_APPLE_SIMULATOR_ARCHS = x86_64 include(../common/tvos.conf) include(../common/gcc-base-mac.conf) diff --git a/mkspecs/macx-watchos-clang/qmake.conf b/mkspecs/macx-watchos-clang/qmake.conf index bb9ab703b7..3ad02b636e 100644 --- a/mkspecs/macx-watchos-clang/qmake.conf +++ b/mkspecs/macx-watchos-clang/qmake.conf @@ -8,8 +8,8 @@ INCLUDEPATH += $$PWD/watchos QMAKE_WATCHOS_TARGETED_DEVICE_FAMILY = 4 -QMAKE_WATCHOS_DEVICE_ARCHS = armv7k -QMAKE_WATCHOS_SIMULATOR_ARCHS = i386 +QMAKE_APPLE_DEVICE_ARCHS = armv7k +QMAKE_APPLE_SIMULATOR_ARCHS = i386 include(../common/watchos.conf) include(../common/gcc-base-mac.conf)