summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mkspecs/features/mac/sdk.prf62
-rw-r--r--mkspecs/features/moc.prf5
-rw-r--r--mkspecs/features/qt_functions.prf6
-rw-r--r--mkspecs/features/qt_module.prf3
-rw-r--r--mkspecs/features/uikit/default_post.prf19
-rw-r--r--mkspecs/features/uikit/default_pre.prf39
-rw-r--r--mkspecs/features/uikit/resolve_config.prf27
7 files changed, 77 insertions, 84 deletions
diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf
index c7395ea572..1db1db7b26 100644
--- a/mkspecs/features/mac/sdk.prf
+++ b/mkspecs/features/mac/sdk.prf
@@ -24,12 +24,6 @@ QMAKE_MAC_SDK_PATH = $$xcodeSDKInfo(Path)
QMAKE_MAC_SDK_PLATFORM_PATH = $$xcodeSDKInfo(PlatformPath)
QMAKE_MAC_SDK_VERSION = $$xcodeSDKInfo(SDKVersion)
-!equals(MAKEFILE_GENERATOR, XCODE) {
- QMAKE_CFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH
- QMAKE_CXXFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH
- QMAKE_LFLAGS += -Wl,-syslibroot,$$QMAKE_MAC_SDK_PATH
-}
-
sysrootified =
for(val, QMAKE_INCDIR_OPENGL): sysrootified += $${QMAKE_MAC_SDK_PATH}$$val
QMAKE_INCDIR_OPENGL = $$sysrootified
@@ -61,15 +55,46 @@ for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_
watchos: os_var = WATCHOS
deployment_target = $$eval(QMAKE_$${os_var}_DEPLOYMENT_TARGET)
- simulator {
- archs = $$eval(QMAKE_$${os_var}_SIMULATOR_ARCHS)
- version_identifier = $$simulator.deployment_identifier
- } else {
- archs = $$eval(QMAKE_$${os_var}_DEVICE_ARCHS)
- version_identifier = $$device.deployment_identifier
+ !simulator|simulator_and_device: device_archs = $$eval(QMAKE_$${os_var}_DEVICE_ARCHS)
+ simulator: simulator_archs = $$eval(QMAKE_$${os_var}_SIMULATOR_ARCHS)
+ archs = $$device_archs $$simulator_archs
+
+ QMAKE_XARCH_CFLAGS =
+ QMAKE_XARCH_LFLAGS =
+ QMAKE_EXTRA_VARIABLES += QMAKE_XARCH_CFLAGS QMAKE_XARCH_LFLAGS
+
+ single_arch {
+ device_archs = $$first(device_archs)
+ simulator_archs = $$first(simulator_archs)
+ archs = $$first(archs)
}
- single_arch: archs = $$first(archs)
+ for(arch, archs) {
+ contains(simulator_archs, $$arch) {
+ sdk = $$simulator.sdk
+ version_identifier = $$simulator.deployment_identifier
+ } else {
+ sdk = $$device.sdk
+ version_identifier = $$device.deployment_identifier
+ }
+
+ version_min_flags = \
+ -Xarch_$${arch} \
+ -m$${version_identifier}-version-min=$$deployment_target
+ QMAKE_XARCH_CFLAGS_$${arch} = $$version_min_flags \
+ -Xarch_$${arch} \
+ -isysroot$$xcodeSDKInfo(Path, $$sdk)
+ QMAKE_XARCH_LFLAGS_$${arch} = $$version_min_flags \
+ -Xarch_$${arch} \
+ -Wl,-syslibroot,$$xcodeSDKInfo(Path, $$sdk)
+
+ QMAKE_XARCH_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS_$${arch})
+ QMAKE_XARCH_LFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS_$${arch})
+
+ QMAKE_EXTRA_VARIABLES += \
+ QMAKE_XARCH_CFLAGS_$${arch} \
+ QMAKE_XARCH_LFLAGS_$${arch}
+ }
QMAKE_CFLAGS_USE_PRECOMPILE =
for(arch, archs) {
@@ -85,10 +110,13 @@ for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_
} else: osx {
version_identifier = macosx
deployment_target = $$QMAKE_MACOSX_DEPLOYMENT_TARGET
+ version_min_flag = -m$${version_identifier}-version-min=$$deployment_target
+ QMAKE_CFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH $$version_min_flag
+ QMAKE_CXXFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH $$version_min_flag
+ QMAKE_LFLAGS += -Wl,-syslibroot,$$QMAKE_MAC_SDK_PATH $$version_min_flag
}
- version_min_flag = -m$${version_identifier}-version-min=$$deployment_target
- QMAKE_CFLAGS += $$version_min_flag
- QMAKE_CXXFLAGS += $$version_min_flag
- QMAKE_LFLAGS += $$version_min_flag
+ QMAKE_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS)
+ QMAKE_CXXFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS)
+ QMAKE_LFLAGS += $(EXPORT_QMAKE_XARCH_LFLAGS)
}
diff --git a/mkspecs/features/moc.prf b/mkspecs/features/moc.prf
index 73fbc8c29b..4c81ee5c74 100644
--- a/mkspecs/features/moc.prf
+++ b/mkspecs/features/moc.prf
@@ -25,8 +25,9 @@ win32:count(MOC_INCLUDEPATH, 40, >) {
}
# QNX's compiler sets "gcc" config, but does not support the -dM option;
-# iOS builds are multi-arch, so this feature cannot possibly work.
-if(gcc|intel_icl|msvc):!rim_qcc:!ios {
+# UIKit builds are always multi-arch due to simulator_and_device (unless
+# -sdk is used) so this feature cannot possibly work.
+if(gcc|intel_icl|msvc):!rim_qcc:!uikit {
moc_predefs.CONFIG = no_link
gcc: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -dM -E -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
else:intel_icl: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -QdM -P -Fi${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
index 08c7c9f899..735ece45f2 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
@@ -1,10 +1,6 @@
defineReplace(qtPlatformTargetSuffix) {
- uikit:CONFIG(simulator, simulator|device): \
- suffix = _$${simulator.sdk}
- else: \
- suffix =
-
+ suffix =
CONFIG(debug, debug|release) {
!debug_and_release|build_pass {
mac: return($${suffix}_debug)
diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
index 90b4c181ee..ed02c597da 100644
--- a/mkspecs/features/qt_module.prf
+++ b/mkspecs/features/qt_module.prf
@@ -119,8 +119,7 @@ lib_bundle {
QMAKE_INFO_PLIST = $$QMAKESPEC/Info.plist.lib
}
!build_all| \
- if(if(!debug_and_release|CONFIG(release, debug|release)): \
- if(!simulator_and_device|CONFIG(device, simulator|device))) {
+ if(if(!debug_and_release|CONFIG(release, debug|release))) {
FRAMEWORK_HEADERS.version = Versions
FRAMEWORK_HEADERS.files = $$SYNCQT.HEADER_FILES $$SYNCQT.HEADER_CLASSES
FRAMEWORK_HEADERS.path = Headers
diff --git a/mkspecs/features/uikit/default_post.prf b/mkspecs/features/uikit/default_post.prf
index 199074eefe..b4de83d6b5 100644
--- a/mkspecs/features/uikit/default_post.prf
+++ b/mkspecs/features/uikit/default_post.prf
@@ -91,15 +91,16 @@ macx-xcode {
only_active_arch.build = debug
QMAKE_MAC_XCODE_SETTINGS += only_active_arch
} else {
- # Be more specific about which architecture we're targeting
- contains(QT_ARCH, arm.*) {
- ios: VALID_ARCHS = $$QMAKE_IOS_DEVICE_ARCHS
- tvos: VALID_ARCHS = $$QMAKE_TVOS_DEVICE_ARCHS
- watchos: VALID_ARCHS = $$QMAKE_WATCHOS_DEVICE_ARCHS
- } else {
- ios: VALID_ARCHS = $$QMAKE_IOS_SIMULATOR_ARCHS
- tvos: VALID_ARCHS = $$QMAKE_TVOS_SIMULATOR_ARCHS
- watchos: VALID_ARCHS = $$QMAKE_WATCHOS_SIMULATOR_ARCHS
+ 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
}
single_arch: VALID_ARCHS = $$first(VALID_ARCHS)
diff --git a/mkspecs/features/uikit/default_pre.prf b/mkspecs/features/uikit/default_pre.prf
index e719ab0848..8b5b3ccfe9 100644
--- a/mkspecs/features/uikit/default_pre.prf
+++ b/mkspecs/features/uikit/default_pre.prf
@@ -1,31 +1,22 @@
load(default_pre)
-# In case Qt was built for a specific SDK
-!isEmpty(QT_VERSION):!qtConfig(simulator_and_device):contains(QMAKE_MAC_SDK, ^$${simulator.sdk}.*): \
- CONFIG += simulator $${simulator.sdk}
+!isEmpty(QT_VERSION) {
+ qtConfig(simulator_and_device)|contains(QMAKE_MAC_SDK, ^$${device.sdk}.*): \
+ CONFIG += device $${device.sdk}
+ qtConfig(simulator_and_device)|contains(QMAKE_MAC_SDK, ^$${simulator.sdk}.*): \
+ CONFIG += simulator $${simulator.sdk}
+
+ qtConfig(simulator_and_device) {
+ # For a simulator_and_device build all the config tests
+ # are based on the device's ARM SDK, but we know that the simulator
+ # is Intel and that we support SSE/SSE2.
+ QT_CPU_FEATURES.$$QT_ARCH += sse sse2
+ CONFIG += sse sse2
+ DEFINES += QT_COMPILER_SUPPORTS_SSE2
+ }
+}
# Check for supported Xcode versions
lessThan(QMAKE_XCODE_VERSION, "4.3"): \
error("This mkspec requires Xcode 4.3 or later")
-
-build_pass:simulator {
- # For a simulator_and_device build all the config tests
- # are based on the iPhoneOS/WatchOS ARM SDK, but we know that the simulator
- # is i386 and that we support SSE/SSE2.
- QT_ARCH = i386
- QT_CPU_FEATURES.i386 = sse sse2
- DEFINES += QT_COMPILER_SUPPORTS_SSE2
- CONFIG -= neon
- CONFIG += sse sse2
-}
-build_pass:appletvsimulator {
- # For a simulator_and_device build all the config tests
- # are based on the AppleTVOS ARM SDK, but we know that the simulator
- # is x64 and that we support SSE/SSE2.
- QT_ARCH = x64
- QT_CPU_FEATURES.x64 = sse sse2
- DEFINES += QT_COMPILER_SUPPORTS_SSE2
- CONFIG -= neon
- CONFIG += sse sse2
-}
diff --git a/mkspecs/features/uikit/resolve_config.prf b/mkspecs/features/uikit/resolve_config.prf
index 983dca82f4..70ddd8be52 100644
--- a/mkspecs/features/uikit/resolve_config.prf
+++ b/mkspecs/features/uikit/resolve_config.prf
@@ -1,34 +1,11 @@
xcodebuild {
# Xcode project files always support both Debug and Release configurations
- # and iOS device and simulator targets, so we make sure the wrapper-makefile
+ # and device and simulator targets, so we make sure the wrapper-makefile
# also does.
CONFIG += debug_and_release simulator_and_device
}
load(resolve_config)
-# Legacy exclusive build configurations for backwards compatibility
-CONFIG($${device.CONFIG}, $${device.CONFIG}|$${simulator.CONFIG}): \
- CONFIG += device
-else: CONFIG($${simulator.CONFIG}, $${device.CONFIG}|$${simulator.CONFIG}): \
- CONFIG += simulator
-
-CONFIG(simulator, simulator|device): \
- CONFIG -= device $${device.CONFIG}
-else: \
- CONFIG -= simulator $${simulator.CONFIG}
-
-macx-xcode {
- # There is no way to genereate Xcode projects that are limited to either
- # simulator or device builds, so simulator_and_device is always
- # effectivly active, even if the user disabled it explicitly.
- # The Xcode generator doesn't support multiple BUILDS though (exclusive
- # builds), so we have to manually set up the simulator suffix.
- library_suffix_simulator.name = "$${QMAKE_XCODE_LIBRARY_SUFFIX_SETTING}[sdk=$${simulator.sdk}*]"
- library_suffix_simulator.value = "_$${simulator.sdk}$($${QMAKE_XCODE_LIBRARY_SUFFIX_SETTING})"
- QMAKE_MAC_XCODE_SETTINGS += library_suffix_simulator
- CONFIG *= xcode_dynamic_library_suffix
-} else {
- addExclusiveBuilds(simulator, device)
-}
+!macx-xcode:xcodebuild: addExclusiveBuilds(simulator, device)