From f454cd8d150543fcef7a481b02fd0dbd357ea5ff Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Fri, 26 Mar 2021 18:20:38 +0100 Subject: [PATCH 1/3] CMake: Make architecture detection failures more verbose Whenever something went wrong with building the arch test or extracting info from it, the failure messages lacked useful details. It's especially hard to figure out what went wrong if the failure happened in the CI. Print a bunch of useful information in case of failure. Change-Id: Iafe287f951880c1441e57924ae372d6a9029a9a7 Reviewed-by: Joerg Bornemann Reviewed-by: Alexey Edelev --- cmake/QtBaseConfigureTests.cmake | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/cmake/QtBaseConfigureTests.cmake b/cmake/QtBaseConfigureTests.cmake index af18131fcd1..cbd482bd59e 100644 --- a/cmake/QtBaseConfigureTests.cmake +++ b/cmake/QtBaseConfigureTests.cmake @@ -9,16 +9,23 @@ function(qt_run_config_test_architecture) qt_get_platform_try_compile_vars(platform_try_compile_vars) list(APPEND flags ${platform_try_compile_vars}) + list(TRANSFORM flags PREPEND " " OUTPUT_VARIABLE flags_indented) + list(JOIN flags_indented "\n" flags_indented) + message(STATUS + "Building architecture extraction project with the following CMake arguments:\n${flags_indented}") + try_compile( _arch_result "${CMAKE_CURRENT_BINARY_DIR}/config.tests/arch" "${CMAKE_CURRENT_SOURCE_DIR}/config.tests/arch" arch CMAKE_FLAGS ${flags} + OUTPUT_VARIABLE arch_test_output ) if (NOT _arch_result) - message(FATAL_ERROR "Failed to compile architecture detection file.") + message(FATAL_ERROR + "Failed to build architecture extraction project. Build output:\n ${arch_test_output}") endif() set(_arch_file_suffix "${CMAKE_EXECUTABLE_SUFFIX}") @@ -34,11 +41,17 @@ function(qt_run_config_test_architecture) string(APPEND arch_test_location "/${QT_MULTI_CONFIG_FIRST_CONFIG}") endif() + set(arch_dir "${CMAKE_CURRENT_BINARY_DIR}/${arch_test_location}") + file(GLOB arch_dir_globbed_files RELATIVE "${arch_dir}" "${arch_dir}/*") + list(JOIN arch_dir_globbed_files "\n" arch_dir_globbed_files) + set(_arch_file "${CMAKE_CURRENT_BINARY_DIR}/${arch_test_location}/architecture_test${_arch_file_suffix}") if (NOT EXISTS "${_arch_file}") message(FATAL_ERROR - "Failed to find compiled architecture detection executable at ${_arch_file}.") + "Failed to find compiled architecture detection executable at ${_arch_file}. \ + The following files were found at: ${arch_dir} \ + ${arch_dir_globbed_files}") endif() message(STATUS "Extracting architecture info from ${_arch_file}.") @@ -66,7 +79,12 @@ function(qt_run_config_test_architecture) endforeach() if (NOT _architecture OR NOT _build_abi) - message(FATAL_ERROR "Failed to extract architecture data from file.") + list(SUBLIST _arch_lines 0 5 arch_lines_fewer) + list(JOIN arch_lines_fewer "\n" arch_lines_output) + + message(FATAL_ERROR + "Failed to extract architecture data from file. \ + Here are the first few lines extracted:\n${arch_lines_output}") endif() set(TEST_architecture 1 CACHE INTERNAL "Ran the architecture test") From f5f56caa39b56dc5dee30a7f6c37e8b07e36d217 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Wed, 31 Mar 2021 18:52:15 +0200 Subject: [PATCH 2/3] CMake: Regenerate stale prev_configure.cmake files Change-Id: I75d7f2f3d9b40ad392bb598b466fec4708b51a61 Reviewed-by: Joerg Bornemann --- src/corelib/.prev_configure.cmake | 8 +++++++ src/gui/.prev_configure.cmake | 40 +++++++++++++++---------------- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/src/corelib/.prev_configure.cmake b/src/corelib/.prev_configure.cmake index 9052acf87b7..893acda9538 100644 --- a/src/corelib/.prev_configure.cmake +++ b/src/corelib/.prev_configure.cmake @@ -14,6 +14,9 @@ set_property(CACHE INPUT_libb2 PROPERTY STRINGS undefined no qt system) #### Libraries +if((UNIX) OR QT_FIND_ALL_PACKAGES_ALWAYS) + qt_find_package(WrapBacktrace PROVIDED_TARGETS WrapBacktrace::WrapBacktrace MODULE_NAME core QMAKE_LIB backtrace) +endif() qt_find_package(WrapDoubleConversion PROVIDED_TARGETS WrapDoubleConversion::WrapDoubleConversion MODULE_NAME core QMAKE_LIB doubleconversion) qt_find_package(GLIB2 PROVIDED_TARGETS GLIB2::GLIB2 MODULE_NAME core QMAKE_LIB glib) qt_find_package(ICU COMPONENTS i18n uc data PROVIDED_TARGETS ICU::i18n ICU::uc ICU::data MODULE_NAME core QMAKE_LIB icu) @@ -668,6 +671,10 @@ qt_feature("regularexpression" PUBLIC CONDITION QT_FEATURE_system_pcre2 OR QT_FEATURE_pcre2 ) qt_feature_definition("regularexpression" "QT_NO_REGULAREXPRESSION" NEGATE VALUE "1") +qt_feature("backtrace" PRIVATE + LABEL "backtrace" + CONDITION UNIX AND QT_FEATURE_regularexpression AND WrapBacktrace_FOUND +) qt_feature("sharedmemory" PUBLIC SECTION "Kernel" LABEL "QSharedMemory" @@ -903,6 +910,7 @@ qt_feature("cborstreamwriter" PUBLIC PURPOSE "Provides support for writing the CBOR binary format." ) qt_configure_add_summary_section(NAME "Qt Core") +qt_configure_add_summary_entry(ARGS "backtrace") qt_configure_add_summary_entry(ARGS "doubleconversion") qt_configure_add_summary_entry(ARGS "system-doubleconversion") qt_configure_add_summary_entry(ARGS "glib") diff --git a/src/gui/.prev_configure.cmake b/src/gui/.prev_configure.cmake index 5665bea9db8..9ce8b6f45e7 100644 --- a/src/gui/.prev_configure.cmake +++ b/src/gui/.prev_configure.cmake @@ -53,78 +53,78 @@ qt_find_package(Vulkan PROVIDED_TARGETS Vulkan::Vulkan MODULE_NAME gui QMAKE_LIB if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(Wayland PROVIDED_TARGETS Wayland::Server MODULE_NAME gui QMAKE_LIB wayland_server) endif() -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(X11 PROVIDED_TARGETS X11::X11 MODULE_NAME gui QMAKE_LIB xlib) endif() -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(X11 PROVIDED_TARGETS ${X11_SM_LIB} ${X11_ICE_LIB} MODULE_NAME gui QMAKE_LIB x11sm) endif() -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB 1.11 PROVIDED_TARGETS XCB::XCB MODULE_NAME gui QMAKE_LIB xcb) endif() -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB 0.3.9 COMPONENTS ICCCM PROVIDED_TARGETS XCB::ICCCM MODULE_NAME gui QMAKE_LIB xcb_icccm) endif() qt_add_qmake_lib_dependency(xcb_icccm xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB 0.3.9 COMPONENTS IMAGE PROVIDED_TARGETS XCB::IMAGE MODULE_NAME gui QMAKE_LIB xcb_image) endif() qt_add_qmake_lib_dependency(xcb_image xcb_shm xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB 0.3.9 COMPONENTS KEYSYMS PROVIDED_TARGETS XCB::KEYSYMS MODULE_NAME gui QMAKE_LIB xcb_keysyms) endif() qt_add_qmake_lib_dependency(xcb_keysyms xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB 0.3.9 COMPONENTS RENDERUTIL PROVIDED_TARGETS XCB::RENDERUTIL MODULE_NAME gui QMAKE_LIB xcb_renderutil) endif() qt_add_qmake_lib_dependency(xcb_renderutil xcb xcb_render) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB COMPONENTS RANDR PROVIDED_TARGETS XCB::RANDR MODULE_NAME gui QMAKE_LIB xcb_randr) endif() qt_add_qmake_lib_dependency(xcb_randr xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB COMPONENTS SHAPE PROVIDED_TARGETS XCB::SHAPE MODULE_NAME gui QMAKE_LIB xcb_shape) endif() qt_add_qmake_lib_dependency(xcb_shape xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB COMPONENTS SHM PROVIDED_TARGETS XCB::SHM MODULE_NAME gui QMAKE_LIB xcb_shm) endif() qt_add_qmake_lib_dependency(xcb_shm xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB COMPONENTS SYNC PROVIDED_TARGETS XCB::SYNC MODULE_NAME gui QMAKE_LIB xcb_sync) endif() qt_add_qmake_lib_dependency(xcb_sync xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB COMPONENTS XFIXES PROVIDED_TARGETS XCB::XFIXES MODULE_NAME gui QMAKE_LIB xcb_xfixes) endif() qt_add_qmake_lib_dependency(xcb_xfixes xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(X11_XCB PROVIDED_TARGETS X11::XCB MODULE_NAME gui QMAKE_LIB xcb_xlib) endif() qt_add_qmake_lib_dependency(xcb_xlib xcb xlib) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB COMPONENTS XKB PROVIDED_TARGETS XCB::XKB MODULE_NAME gui QMAKE_LIB xcb_xkb) endif() qt_add_qmake_lib_dependency(xcb_xkb xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB COMPONENTS RENDER PROVIDED_TARGETS XCB::RENDER MODULE_NAME gui QMAKE_LIB xcb_render) endif() qt_add_qmake_lib_dependency(xcb_render xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB COMPONENTS GLX PROVIDED_TARGETS XCB::GLX MODULE_NAME gui QMAKE_LIB xcb_glx) endif() qt_add_qmake_lib_dependency(xcb_glx xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB 1.12 COMPONENTS XINPUT PROVIDED_TARGETS XCB::XINPUT MODULE_NAME gui QMAKE_LIB xcb_xinput) endif() qt_add_qmake_lib_dependency(xcb_xinput xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XKB 0.5.0 PROVIDED_TARGETS XKB::XKB MODULE_NAME gui QMAKE_LIB xkbcommon) endif() -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XKB_COMMON_X11 0.5.0 PROVIDED_TARGETS PkgConfig::XKB_COMMON_X11 MODULE_NAME gui QMAKE_LIB xkbcommon_x11) endif() -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XRender 0.6 PROVIDED_TARGETS PkgConfig::XRender MODULE_NAME gui QMAKE_LIB xrender) endif() qt_add_qmake_lib_dependency(xrender xlib) From 8f2795b17fde2a595fbb67f4531c3d49b8b3d2cd Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Wed, 31 Mar 2021 18:56:59 +0200 Subject: [PATCH 3/3] CMake: Expose sub-arch test results as features Needed for QT_FEATURE_foo checks in repos other than qtbase when building SIMD specific files (e.g. qtimageformats). Task-number: QTBUG-85447 Change-Id: Ibd2200fe24cecbb0b2a092f645ca622baf738601 Reviewed-by: Joerg Bornemann --- .prev_configure.cmake | 44 +++++++++++++++++++++---------------------- configure.cmake | 44 +++++++++++++++++++++---------------------- configure.json | 22 ++++++++++++++++++++++ 3 files changed, 66 insertions(+), 44 deletions(-) diff --git a/.prev_configure.cmake b/.prev_configure.cmake index 02cd39e5a8d..3d76317909d 100644 --- a/.prev_configure.cmake +++ b/.prev_configure.cmake @@ -643,37 +643,37 @@ qt_feature("sse2" PRIVATE ) qt_feature_definition("sse2" "QT_COMPILER_SUPPORTS_SSE2" VALUE "1") qt_feature_config("sse2" QMAKE_PRIVATE_CONFIG) -qt_feature("sse3" +qt_feature("sse3" PRIVATE LABEL "SSE3" CONDITION QT_FEATURE_sse2 AND TEST_subarch_sse3 ) qt_feature_definition("sse3" "QT_COMPILER_SUPPORTS_SSE3" VALUE "1") qt_feature_config("sse3" QMAKE_PRIVATE_CONFIG) -qt_feature("ssse3" +qt_feature("ssse3" PRIVATE LABEL "SSSE3" CONDITION QT_FEATURE_sse3 AND TEST_subarch_ssse3 ) qt_feature_definition("ssse3" "QT_COMPILER_SUPPORTS_SSSE3" VALUE "1") qt_feature_config("ssse3" QMAKE_PRIVATE_CONFIG) -qt_feature("sse4_1" +qt_feature("sse4_1" PRIVATE LABEL "SSE4.1" CONDITION QT_FEATURE_ssse3 AND TEST_subarch_sse4_1 ) qt_feature_definition("sse4_1" "QT_COMPILER_SUPPORTS_SSE4_1" VALUE "1") qt_feature_config("sse4_1" QMAKE_PRIVATE_CONFIG) -qt_feature("sse4_2" +qt_feature("sse4_2" PRIVATE LABEL "SSE4.2" CONDITION QT_FEATURE_sse4_1 AND TEST_subarch_sse4_2 ) qt_feature_definition("sse4_2" "QT_COMPILER_SUPPORTS_SSE4_2" VALUE "1") qt_feature_config("sse4_2" QMAKE_PRIVATE_CONFIG) -qt_feature("avx" +qt_feature("avx" PRIVATE LABEL "AVX" CONDITION QT_FEATURE_sse4_2 AND TEST_subarch_avx AND ( NOT ANDROID OR NOT ( TEST_architecture_arch STREQUAL x86_64 ) ) ) qt_feature_definition("avx" "QT_COMPILER_SUPPORTS_AVX" VALUE "1") qt_feature_config("avx" QMAKE_PRIVATE_CONFIG) -qt_feature("f16c" +qt_feature("f16c" PRIVATE LABEL "F16C" CONDITION QT_FEATURE_avx AND TEST_subarch_f16c ) @@ -685,79 +685,79 @@ qt_feature("avx2" PRIVATE ) qt_feature_definition("avx2" "QT_COMPILER_SUPPORTS_AVX2" VALUE "1") qt_feature_config("avx2" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512f" +qt_feature("avx512f" PRIVATE LABEL "F" CONDITION QT_FEATURE_avx2 AND TEST_subarch_avx512f ) qt_feature_definition("avx512f" "QT_COMPILER_SUPPORTS_AVX512F" VALUE "1") qt_feature_config("avx512f" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512er" +qt_feature("avx512er" PRIVATE LABEL "ER" CONDITION QT_FEATURE_avx512f AND TEST_subarch_avx512er ) qt_feature_definition("avx512er" "QT_COMPILER_SUPPORTS_AVX512ER" VALUE "1") qt_feature_config("avx512er" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512cd" +qt_feature("avx512cd" PRIVATE LABEL "CD" CONDITION QT_FEATURE_avx512f AND TEST_subarch_avx512cd ) qt_feature_definition("avx512cd" "QT_COMPILER_SUPPORTS_AVX512CD" VALUE "1") qt_feature_config("avx512cd" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512pf" +qt_feature("avx512pf" PRIVATE LABEL "PF" CONDITION QT_FEATURE_avx512f AND TEST_subarch_avx512pf ) qt_feature_definition("avx512pf" "QT_COMPILER_SUPPORTS_AVX512PF" VALUE "1") qt_feature_config("avx512pf" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512dq" +qt_feature("avx512dq" PRIVATE LABEL "DQ" CONDITION QT_FEATURE_avx512f AND TEST_subarch_avx512dq ) qt_feature_definition("avx512dq" "QT_COMPILER_SUPPORTS_AVX512DQ" VALUE "1") qt_feature_config("avx512dq" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512bw" +qt_feature("avx512bw" PRIVATE LABEL "BW" CONDITION QT_FEATURE_avx512f AND TEST_subarch_avx512bw ) qt_feature_definition("avx512bw" "QT_COMPILER_SUPPORTS_AVX512BW" VALUE "1") qt_feature_config("avx512bw" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512vl" +qt_feature("avx512vl" PRIVATE LABEL "VL" CONDITION QT_FEATURE_avx512f AND TEST_subarch_avx512vl ) qt_feature_definition("avx512vl" "QT_COMPILER_SUPPORTS_AVX512VL" VALUE "1") qt_feature_config("avx512vl" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512ifma" +qt_feature("avx512ifma" PRIVATE LABEL "IFMA" CONDITION QT_FEATURE_avx512f AND TEST_subarch_avx512ifma ) qt_feature_definition("avx512ifma" "QT_COMPILER_SUPPORTS_AVX512IFMA" VALUE "1") qt_feature_config("avx512ifma" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512vbmi" +qt_feature("avx512vbmi" PRIVATE LABEL "VBMI" CONDITION QT_FEATURE_avx512f AND TEST_subarch_avx512vbmi ) qt_feature_definition("avx512vbmi" "QT_COMPILER_SUPPORTS_AVX512VBMI" VALUE "1") qt_feature_config("avx512vbmi" QMAKE_PRIVATE_CONFIG) -qt_feature("aesni" +qt_feature("aesni" PRIVATE LABEL "AES" CONDITION QT_FEATURE_sse2 AND TEST_subarch_aesni ) qt_feature_definition("aesni" "QT_COMPILER_SUPPORTS_AES" VALUE "1") qt_feature_config("aesni" QMAKE_PRIVATE_CONFIG) -qt_feature("rdrnd" +qt_feature("rdrnd" PRIVATE LABEL "RDRAND" CONDITION TEST_subarch_rdrnd ) qt_feature_definition("rdrnd" "QT_COMPILER_SUPPORTS_RDRND" VALUE "1") qt_feature_config("rdrnd" QMAKE_PRIVATE_CONFIG) -qt_feature("rdseed" +qt_feature("rdseed" PRIVATE LABEL "RDSEED" CONDITION TEST_subarch_rdseed ) qt_feature_definition("rdseed" "QT_COMPILER_SUPPORTS_RDSEED" VALUE "1") qt_feature_config("rdseed" QMAKE_PRIVATE_CONFIG) -qt_feature("shani" +qt_feature("shani" PRIVATE LABEL "SHA" CONDITION QT_FEATURE_sse2 AND TEST_subarch_shani ) @@ -769,19 +769,19 @@ qt_feature("x86SimdAlways" ) qt_feature_definition("x86SimdAlways" "QT_COMPILER_SUPPORTS_SIMD_ALWAYS" VALUE "1") qt_feature_config("x86SimdAlways" QMAKE_PRIVATE_CONFIG) -qt_feature("mips_dsp" +qt_feature("mips_dsp" PRIVATE LABEL "DSP" CONDITION ( TEST_architecture_arch STREQUAL mips ) AND TEST_arch_${TEST_architecture_arch}_subarch_dsp ) qt_feature_definition("mips_dsp" "QT_COMPILER_SUPPORTS_MIPS_DSP" VALUE "1") qt_feature_config("mips_dsp" QMAKE_PRIVATE_CONFIG) -qt_feature("mips_dspr2" +qt_feature("mips_dspr2" PRIVATE LABEL "DSPr2" CONDITION ( TEST_architecture_arch STREQUAL mips ) AND TEST_arch_${TEST_architecture_arch}_subarch_dspr2 ) qt_feature_definition("mips_dspr2" "QT_COMPILER_SUPPORTS_MIPS_DSPR2" VALUE "1") qt_feature_config("mips_dspr2" QMAKE_PRIVATE_CONFIG) -qt_feature("neon" +qt_feature("neon" PRIVATE LABEL "NEON" CONDITION ( ( TEST_architecture_arch STREQUAL arm ) OR ( TEST_architecture_arch STREQUAL arm64 ) ) AND TEST_arch_${TEST_architecture_arch}_subarch_neon ) diff --git a/configure.cmake b/configure.cmake index 26e887c5590..7d015717ed5 100644 --- a/configure.cmake +++ b/configure.cmake @@ -654,37 +654,37 @@ qt_feature("sse2" PRIVATE ) qt_feature_definition("sse2" "QT_COMPILER_SUPPORTS_SSE2" VALUE "1") qt_feature_config("sse2" QMAKE_PRIVATE_CONFIG) -qt_feature("sse3" +qt_feature("sse3" PRIVATE LABEL "SSE3" CONDITION QT_FEATURE_sse2 AND TEST_subarch_sse3 ) qt_feature_definition("sse3" "QT_COMPILER_SUPPORTS_SSE3" VALUE "1") qt_feature_config("sse3" QMAKE_PRIVATE_CONFIG) -qt_feature("ssse3" +qt_feature("ssse3" PRIVATE LABEL "SSSE3" CONDITION QT_FEATURE_sse3 AND TEST_subarch_ssse3 ) qt_feature_definition("ssse3" "QT_COMPILER_SUPPORTS_SSSE3" VALUE "1") qt_feature_config("ssse3" QMAKE_PRIVATE_CONFIG) -qt_feature("sse4_1" +qt_feature("sse4_1" PRIVATE LABEL "SSE4.1" CONDITION QT_FEATURE_ssse3 AND TEST_subarch_sse4_1 ) qt_feature_definition("sse4_1" "QT_COMPILER_SUPPORTS_SSE4_1" VALUE "1") qt_feature_config("sse4_1" QMAKE_PRIVATE_CONFIG) -qt_feature("sse4_2" +qt_feature("sse4_2" PRIVATE LABEL "SSE4.2" CONDITION QT_FEATURE_sse4_1 AND TEST_subarch_sse4_2 ) qt_feature_definition("sse4_2" "QT_COMPILER_SUPPORTS_SSE4_2" VALUE "1") qt_feature_config("sse4_2" QMAKE_PRIVATE_CONFIG) -qt_feature("avx" +qt_feature("avx" PRIVATE LABEL "AVX" CONDITION QT_FEATURE_sse4_2 AND TEST_subarch_avx AND ( NOT ANDROID OR NOT ( TEST_architecture_arch STREQUAL x86_64 ) ) ) qt_feature_definition("avx" "QT_COMPILER_SUPPORTS_AVX" VALUE "1") qt_feature_config("avx" QMAKE_PRIVATE_CONFIG) -qt_feature("f16c" +qt_feature("f16c" PRIVATE LABEL "F16C" CONDITION QT_FEATURE_avx AND TEST_subarch_f16c ) @@ -696,79 +696,79 @@ qt_feature("avx2" PRIVATE ) qt_feature_definition("avx2" "QT_COMPILER_SUPPORTS_AVX2" VALUE "1") qt_feature_config("avx2" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512f" +qt_feature("avx512f" PRIVATE LABEL "F" CONDITION QT_FEATURE_avx2 AND TEST_subarch_avx512f ) qt_feature_definition("avx512f" "QT_COMPILER_SUPPORTS_AVX512F" VALUE "1") qt_feature_config("avx512f" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512er" +qt_feature("avx512er" PRIVATE LABEL "ER" CONDITION QT_FEATURE_avx512f AND TEST_subarch_avx512er ) qt_feature_definition("avx512er" "QT_COMPILER_SUPPORTS_AVX512ER" VALUE "1") qt_feature_config("avx512er" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512cd" +qt_feature("avx512cd" PRIVATE LABEL "CD" CONDITION QT_FEATURE_avx512f AND TEST_subarch_avx512cd ) qt_feature_definition("avx512cd" "QT_COMPILER_SUPPORTS_AVX512CD" VALUE "1") qt_feature_config("avx512cd" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512pf" +qt_feature("avx512pf" PRIVATE LABEL "PF" CONDITION QT_FEATURE_avx512f AND TEST_subarch_avx512pf ) qt_feature_definition("avx512pf" "QT_COMPILER_SUPPORTS_AVX512PF" VALUE "1") qt_feature_config("avx512pf" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512dq" +qt_feature("avx512dq" PRIVATE LABEL "DQ" CONDITION QT_FEATURE_avx512f AND TEST_subarch_avx512dq ) qt_feature_definition("avx512dq" "QT_COMPILER_SUPPORTS_AVX512DQ" VALUE "1") qt_feature_config("avx512dq" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512bw" +qt_feature("avx512bw" PRIVATE LABEL "BW" CONDITION QT_FEATURE_avx512f AND TEST_subarch_avx512bw ) qt_feature_definition("avx512bw" "QT_COMPILER_SUPPORTS_AVX512BW" VALUE "1") qt_feature_config("avx512bw" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512vl" +qt_feature("avx512vl" PRIVATE LABEL "VL" CONDITION QT_FEATURE_avx512f AND TEST_subarch_avx512vl ) qt_feature_definition("avx512vl" "QT_COMPILER_SUPPORTS_AVX512VL" VALUE "1") qt_feature_config("avx512vl" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512ifma" +qt_feature("avx512ifma" PRIVATE LABEL "IFMA" CONDITION QT_FEATURE_avx512f AND TEST_subarch_avx512ifma ) qt_feature_definition("avx512ifma" "QT_COMPILER_SUPPORTS_AVX512IFMA" VALUE "1") qt_feature_config("avx512ifma" QMAKE_PRIVATE_CONFIG) -qt_feature("avx512vbmi" +qt_feature("avx512vbmi" PRIVATE LABEL "VBMI" CONDITION QT_FEATURE_avx512f AND TEST_subarch_avx512vbmi ) qt_feature_definition("avx512vbmi" "QT_COMPILER_SUPPORTS_AVX512VBMI" VALUE "1") qt_feature_config("avx512vbmi" QMAKE_PRIVATE_CONFIG) -qt_feature("aesni" +qt_feature("aesni" PRIVATE LABEL "AES" CONDITION QT_FEATURE_sse2 AND TEST_subarch_aesni ) qt_feature_definition("aesni" "QT_COMPILER_SUPPORTS_AES" VALUE "1") qt_feature_config("aesni" QMAKE_PRIVATE_CONFIG) -qt_feature("rdrnd" +qt_feature("rdrnd" PRIVATE LABEL "RDRAND" CONDITION TEST_subarch_rdrnd ) qt_feature_definition("rdrnd" "QT_COMPILER_SUPPORTS_RDRND" VALUE "1") qt_feature_config("rdrnd" QMAKE_PRIVATE_CONFIG) -qt_feature("rdseed" +qt_feature("rdseed" PRIVATE LABEL "RDSEED" CONDITION TEST_subarch_rdseed ) qt_feature_definition("rdseed" "QT_COMPILER_SUPPORTS_RDSEED" VALUE "1") qt_feature_config("rdseed" QMAKE_PRIVATE_CONFIG) -qt_feature("shani" +qt_feature("shani" PRIVATE LABEL "SHA" CONDITION QT_FEATURE_sse2 AND TEST_subarch_shani ) @@ -780,19 +780,19 @@ qt_feature("x86SimdAlways" ) qt_feature_definition("x86SimdAlways" "QT_COMPILER_SUPPORTS_SIMD_ALWAYS" VALUE "1") qt_feature_config("x86SimdAlways" QMAKE_PRIVATE_CONFIG) -qt_feature("mips_dsp" +qt_feature("mips_dsp" PRIVATE LABEL "DSP" CONDITION ( TEST_architecture_arch STREQUAL mips ) AND TEST_arch_${TEST_architecture_arch}_subarch_dsp ) qt_feature_definition("mips_dsp" "QT_COMPILER_SUPPORTS_MIPS_DSP" VALUE "1") qt_feature_config("mips_dsp" QMAKE_PRIVATE_CONFIG) -qt_feature("mips_dspr2" +qt_feature("mips_dspr2" PRIVATE LABEL "DSPr2" CONDITION ( TEST_architecture_arch STREQUAL mips ) AND TEST_arch_${TEST_architecture_arch}_subarch_dspr2 ) qt_feature_definition("mips_dspr2" "QT_COMPILER_SUPPORTS_MIPS_DSPR2" VALUE "1") qt_feature_config("mips_dspr2" QMAKE_PRIVATE_CONFIG) -qt_feature("neon" +qt_feature("neon" PRIVATE LABEL "NEON" CONDITION ( ( TEST_architecture_arch STREQUAL arm ) OR ( TEST_architecture_arch STREQUAL arm64 ) ) AND TEST_arch_${TEST_architecture_arch}_subarch_neon ) diff --git a/configure.json b/configure.json index fabe8c3b452..c6790eab780 100644 --- a/configure.json +++ b/configure.json @@ -1068,6 +1068,7 @@ "condition": "features.sse2 && tests.sse3", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_SSE3", "value": 1 } ] }, @@ -1076,6 +1077,7 @@ "condition": "features.sse3 && tests.ssse3", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_SSSE3", "value": 1 } ] }, @@ -1084,6 +1086,7 @@ "condition": "features.ssse3 && tests.sse4_1", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_SSE4_1", "value": 1 } ] }, @@ -1092,6 +1095,7 @@ "condition": "features.sse4_1 && tests.sse4_2", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_SSE4_2", "value": 1 } ] }, @@ -1100,6 +1104,7 @@ "condition": "features.sse4_2 && tests.avx && (!config.android || !arch.x86_64)", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX", "value": 1 } ] }, @@ -1108,6 +1113,7 @@ "condition": "features.avx && tests.f16c", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_F16C", "value": 1 } ] }, @@ -1125,6 +1131,7 @@ "condition": "features.avx2 && tests.avx512f", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512F", "value": 1 } ] }, @@ -1133,6 +1140,7 @@ "condition": "features.avx512f && tests.avx512er", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512ER", "value": 1 } ] }, @@ -1141,6 +1149,7 @@ "condition": "features.avx512f && tests.avx512cd", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512CD", "value": 1 } ] }, @@ -1149,6 +1158,7 @@ "condition": "features.avx512f && tests.avx512pf", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512PF", "value": 1 } ] }, @@ -1157,6 +1167,7 @@ "condition": "features.avx512f && tests.avx512dq", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512DQ", "value": 1 } ] }, @@ -1165,6 +1176,7 @@ "condition": "features.avx512f && tests.avx512bw", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512BW", "value": 1 } ] }, @@ -1173,6 +1185,7 @@ "condition": "features.avx512f && tests.avx512vl", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512VL", "value": 1 } ] }, @@ -1181,6 +1194,7 @@ "condition": "features.avx512f && tests.avx512ifma", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512IFMA", "value": 1 } ] }, @@ -1189,6 +1203,7 @@ "condition": "features.avx512f && tests.avx512vbmi", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512VBMI", "value": 1 } ] }, @@ -1197,6 +1212,7 @@ "condition": "features.sse2 && tests.aesni", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_AES", "value": 1 } ] }, @@ -1205,6 +1221,7 @@ "condition": "tests.rdrnd", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_RDRND", "value": 1 } ] }, @@ -1213,6 +1230,7 @@ "condition": "tests.rdseed", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_RDSEED", "value": 1 } ] }, @@ -1221,6 +1239,7 @@ "condition": "features.sse2 && tests.shani", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_SHA", "value": 1 } ] }, @@ -1237,6 +1256,7 @@ "condition": "arch.mips && subarch.dsp", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_MIPS_DSP", "value": 1 } ] }, @@ -1245,6 +1265,7 @@ "condition": "arch.mips && subarch.dspr2", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_MIPS_DSPR2", "value": 1 } ] }, @@ -1253,6 +1274,7 @@ "condition": "(arch.arm || arch.arm64) && subarch.neon", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_NEON", "value": 1 } ] },