CMake: disable the attempt to force SIMD on iOS simulator builds
This will stop working with the next commit, which merges all basic x86 SIMD intrinsics into one configure test. As a result, linking almost anything graphical on iOS (which is almost everything) causes the linker to fail with undefined references to SIMD-optimized versions that didn't get compiled. Change-Id: Ib42b3adc93bf4d43bd55fffd16c288f4104a6ccc Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
parent
dedf11a53b
commit
500c116ced
@ -87,9 +87,10 @@ include("${CMAKE_CURRENT_SOURCE_DIR}/configure.cmake")
|
|||||||
|
|
||||||
qt_internal_get_first_osx_arch(__qt_osx_first_arch)
|
qt_internal_get_first_osx_arch(__qt_osx_first_arch)
|
||||||
set(__qt_apple_silicon_arches "arm64;arm64e")
|
set(__qt_apple_silicon_arches "arm64;arm64e")
|
||||||
if((UIKIT AND NOT QT_UIKIT_SDK)
|
if(MACOS AND QT_IS_MACOS_UNIVERSAL
|
||||||
OR (MACOS AND QT_IS_MACOS_UNIVERSAL
|
AND __qt_osx_first_arch IN_LIST __qt_apple_silicon_arches)
|
||||||
AND __qt_osx_first_arch IN_LIST __qt_apple_silicon_arches))
|
# The test in configure.cmake will not be run, but we know that
|
||||||
|
# the compiler supports these intrinsics
|
||||||
set(QT_FORCE_FEATURE_sse2 ON CACHE INTERNAL "Force enable sse2 due to platform requirements.")
|
set(QT_FORCE_FEATURE_sse2 ON CACHE INTERNAL "Force enable sse2 due to platform requirements.")
|
||||||
set(__QtFeature_custom_enabled_cache_variables
|
set(__QtFeature_custom_enabled_cache_variables
|
||||||
TEST_subarch_sse2
|
TEST_subarch_sse2
|
||||||
|
@ -214,15 +214,6 @@ if(MSVC)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(UIKIT)
|
if(UIKIT)
|
||||||
# Do what mkspecs/features/uikit/default_pre.prf does, aka enable sse2 for
|
|
||||||
# simulator_and_device_builds.
|
|
||||||
if(FEATURE_simulator_and_device)
|
|
||||||
# Setting the definition on PlatformCommonInternal behaves slightly differently from what
|
|
||||||
# is done in qmake land. This way the define is not propagated to tests, examples, or
|
|
||||||
# user projects built with qmake, but only modules, plugins and tools.
|
|
||||||
# TODO: Figure out if this ok or not (sounds ok to me).
|
|
||||||
target_compile_definitions(PlatformCommonInternal INTERFACE QT_COMPILER_SUPPORTS_SSE2)
|
|
||||||
endif()
|
|
||||||
qt_internal_apply_bitcode_flags(PlatformCommonInternal)
|
qt_internal_apply_bitcode_flags(PlatformCommonInternal)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -7,15 +7,6 @@ $$sim_and_dev|contains(QMAKE_MAC_SDK, ^$${device.sdk}.*): \
|
|||||||
$$sim_and_dev|contains(QMAKE_MAC_SDK, ^$${simulator.sdk}.*): \
|
$$sim_and_dev|contains(QMAKE_MAC_SDK, ^$${simulator.sdk}.*): \
|
||||||
CONFIG += simulator $${simulator.sdk}
|
CONFIG += simulator $${simulator.sdk}
|
||||||
|
|
||||||
$$sim_and_dev {
|
|
||||||
# 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
|
|
||||||
}
|
|
||||||
|
|
||||||
CONFIG += entrypoint
|
CONFIG += entrypoint
|
||||||
|
|
||||||
unset(sim_and_dev)
|
unset(sim_and_dev)
|
||||||
|
Loading…
Reference in New Issue
Block a user