diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-04-21 11:33:44 +0200 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2021-05-20 18:31:05 +0000 |
commit | fe6dc9dc8549cd9de7a0ddb04d921fd3263b51df (patch) | |
tree | 88c2121c20c9c6290bd1cbb7b50e1b6c0eb05175 /configure.cmake | |
parent | 5b64e5950cf984abb7d47e0802bcb4b5a21e06fa (diff) |
Add runtime ARM64 AES check
Adds runtime CPU detection for Windows and macOS, and switches feature
detection of AES to runtime like for x86,
So far only on ARM64, since gcc doesn't do function versioning on ARM32,
but clang can, so it could be added later.
Change-Id: Ibe5d60f48cdae3e366a8ecd6263534ba2b09b131
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'configure.cmake')
-rw-r--r-- | configure.cmake | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/configure.cmake b/configure.cmake index 78d585f670..c21452583c 100644 --- a/configure.cmake +++ b/configure.cmake @@ -790,12 +790,12 @@ qt_feature("shani" PRIVATE ) qt_feature_definition("shani" "QT_COMPILER_SUPPORTS_SHA" VALUE "1") qt_feature_config("shani" QMAKE_PRIVATE_CONFIG) -qt_feature("x86SimdAlways" - LABEL "Intrinsics without -mXXX option" - CONDITION ( ( TEST_architecture_arch STREQUAL i386 ) OR ( TEST_architecture_arch STREQUAL x86_64 ) ) AND ON +qt_feature("simdAlways" + LABEL "Intrinsics without compiler architecture option" + CONDITION ( ( ( TEST_architecture_arch STREQUAL i386 ) OR ( TEST_architecture_arch STREQUAL x86_64 ) ) AND ON ) OR ( TEST_architecture_arch STREQUAL arm64 ) ) -qt_feature_definition("x86SimdAlways" "QT_COMPILER_SUPPORTS_SIMD_ALWAYS" VALUE "1") -qt_feature_config("x86SimdAlways" QMAKE_PRIVATE_CONFIG) +qt_feature_definition("simdAlways" "QT_COMPILER_SUPPORTS_SIMD_ALWAYS" VALUE "1") +qt_feature_config("simdAlways" QMAKE_PRIVATE_CONFIG) qt_feature("mips_dsp" PRIVATE LABEL "DSP" CONDITION ( TEST_architecture_arch STREQUAL mips ) AND TEST_arch_${TEST_architecture_arch}_subarch_dsp @@ -814,6 +814,18 @@ qt_feature("neon" PRIVATE ) qt_feature_definition("neon" "QT_COMPILER_SUPPORTS_NEON" VALUE "1") qt_feature_config("neon" QMAKE_PRIVATE_CONFIG) +qt_feature("arm_crc32" PRIVATE + LABEL "CRC32" + CONDITION ( ( TEST_architecture_arch STREQUAL arm ) OR ( TEST_architecture_arch STREQUAL arm64 ) ) AND TEST_arch_${TEST_architecture_arch}_subarch_crc32 +) +qt_feature_definition("arm_crc32" "QT_COMPILER_SUPPORTS_CRC32" VALUE "1") +qt_feature_config("arm_crc32" QMAKE_PRIVATE_CONFIG) +qt_feature("arm_crypto" PRIVATE + LABEL "AES" + CONDITION ( ( TEST_architecture_arch STREQUAL arm ) OR ( TEST_architecture_arch STREQUAL arm64 ) ) AND TEST_arch_${TEST_architecture_arch}_subarch_crypto +) +qt_feature_definition("arm_crypto" "QT_COMPILER_SUPPORTS_AES" VALUE "1") +qt_feature_config("arm_crypto" QMAKE_PRIVATE_CONFIG) qt_feature("posix_fallocate" PRIVATE LABEL "POSIX fallocate()" CONDITION TEST_posix_fallocate @@ -1033,11 +1045,13 @@ qt_configure_add_summary_entry( CONDITION ( ( TEST_architecture_arch STREQUAL i386 ) OR ( TEST_architecture_arch STREQUAL x86_64 ) ) ) qt_configure_add_summary_entry( - ARGS "x86SimdAlways" - CONDITION ( ( TEST_architecture_arch STREQUAL i386 ) OR ( TEST_architecture_arch STREQUAL x86_64 ) ) AND NOT MSVC + ARGS "simdAlways" + CONDITION ( ( TEST_architecture_arch STREQUAL i386 ) OR ( TEST_architecture_arch STREQUAL x86_64 ) OR ( TEST_architecture_arch STREQUAL arm64 ) ) AND NOT MSVC ) qt_configure_add_summary_entry( - ARGS "neon" + TYPE "featureList" + ARGS "neon arm_crc32 arm_crypto" + MESSAGE "Extensions" CONDITION ( TEST_architecture_arch STREQUAL arm ) OR ( TEST_architecture_arch STREQUAL arm64 ) ) qt_configure_add_summary_entry( |