summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2021-06-21 21:48:25 +0200
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2021-11-11 00:21:06 +0100
commita1c3e0b67cac240d39e101b8397460a3c3886e37 (patch)
treea014c9848ed8cd08e818cca0cd2e1937c12b66cf
parente01f4642746cb5eb53ae4ce53e0c8e71ad654ff2 (diff)
macOS: Respect QMAKE_APPLE_DEVICE_ARCHS by building for all those archs
If QMAKE_APPLE_DEVICE_ARCHS is not set, we pick up the available archs based on what Qt was built with (QT_ARCS), but only build the active arch. Change-Id: I83273f878022af34a3a0d0eeae8b11d781f78c49 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit b0a9825edb490de9e2af09bb91fb6f1819fd7616)
-rw-r--r--mkspecs/common/macx.conf2
-rw-r--r--mkspecs/features/mac/default_post.prf26
2 files changed, 20 insertions, 8 deletions
diff --git a/mkspecs/common/macx.conf b/mkspecs/common/macx.conf
index 006003d465..2d4ca24e96 100644
--- a/mkspecs/common/macx.conf
+++ b/mkspecs/common/macx.conf
@@ -19,6 +19,8 @@ device.dir_affix = $${device.sdk}
device.CONFIG = $${device.sdk}
device.deployment_identifier = $${device.sdk}
+CONFIG += only_active_arch
+
QMAKE_LIBS_VULKAN =
include(mac.conf)
diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf
index 83151604d7..abc6d82ade 100644
--- a/mkspecs/features/mac/default_post.prf
+++ b/mkspecs/features/mac/default_post.prf
@@ -95,11 +95,18 @@ app_extension_api_only {
QMAKE_LFLAGS += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
}
-# Pick up available architectures from what Qt was built with,
-# so that our Makefile or Xcode project is set up to build for
-# any of the available architectures.
-isEmpty(QMAKE_APPLE_DEVICE_ARCHS): \
- QMAKE_APPLE_DEVICE_ARCHS = $$QT_ARCHS
+macos {
+ !isEmpty(QMAKE_APPLE_DEVICE_ARCHS) {
+ # If the user has requested a specific set of architectures,
+ # build all of those by default, but limited to only those.
+ CONFIG -= only_active_arch
+ } else {
+ # Otherwise allow building all of the architectures available
+ # in Qt, but only build the active arch (unless the user has
+ # manually overridden this via CONFIG -= only_active_arch).
+ QMAKE_APPLE_DEVICE_ARCHS = $$QT_ARCHS
+ }
+}
macx-xcode {
qmake_pkginfo_typeinfo.name = QMAKE_PKGINFO_TYPEINFO
@@ -158,15 +165,18 @@ macx-xcode {
single_arch: VALID_ARCHS = $$first(VALID_ARCHS)
- macos: ACTIVE_ARCH = $$system("uname -m")
+ macos {
+ only_active_arch: DEFAULT_ARCHS = $$system("uname -m")
+ else: DEFAULT_ARCHS = $$VALID_ARCHS
+ }
ARCHS = $(filter $(EXPORT_VALID_ARCHS), \
$(if $(ARCHS), $(ARCHS), \
- $(if $(EXPORT_ACTIVE_ARCH), $(EXPORT_ACTIVE_ARCH), \
+ $(if $(EXPORT_DEFAULT_ARCHS), $(EXPORT_DEFAULT_ARCHS), \
$(EXPORT_VALID_ARCHS))))
ARCH_ARGS = $(foreach arch, $(if $(EXPORT_ARCHS), $(EXPORT_ARCHS), $(EXPORT_VALID_ARCHS)), -arch $(arch))
- QMAKE_EXTRA_VARIABLES += VALID_ARCHS ACTIVE_ARCH ARCHS ARCH_ARGS
+ QMAKE_EXTRA_VARIABLES += VALID_ARCHS DEFAULT_ARCHS ARCHS ARCH_ARGS
arch_flags = $(EXPORT_ARCH_ARGS)