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 1db1db7b26a..0d43fbe5a1c 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 b4de83d6b53..f34d0a9f2cf 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 94eff0d2377..5df225466f5 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 f3893824506..8038ae68469 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 bb9ab703b7b..3ad02b636e3 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)