From 4e4cd7416af3f84e6a7c7dee03a2e50864e9cacc Mon Sep 17 00:00:00 2001 From: Alexey Edelev Date: Wed, 11 Jan 2023 13:35:10 +0100 Subject: [PATCH] Add the 'QT_INTERNAL_AVOID_OVERRIDING_SYNCQT_CONFIG' flag MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The flag avoids overriding of the default CMake build config when building syncqt. Add extra checks to the make sure that configure-time tools use the correct build type. Fixes: QTBUG-109792 Pick-to: 6.5 Change-Id: I572fed60c58e59297fa559aea6eb86af94b979b7 Reviewed-by: Qt CI Bot Reviewed-by: Jörg Bornemann --- cmake/QtToolHelpers.cmake | 11 ++++++++++- src/tools/syncqt/CMakeLists.txt | 7 ++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/cmake/QtToolHelpers.cmake b/cmake/QtToolHelpers.cmake index 117ad7483a5..14398e2a402 100644 --- a/cmake/QtToolHelpers.cmake +++ b/cmake/QtToolHelpers.cmake @@ -616,7 +616,7 @@ endfunction() # Specifies the module this tool belongs to. The Qt6${TOOLS_TARGET}Tools module # will then expose targets for this tool. Ignored if NO_INSTALL is set. function(qt_internal_add_configure_time_tool target_name) - set(one_value_args INSTALL_DIRECTORY TOOLS_TARGET) + set(one_value_args INSTALL_DIRECTORY TOOLS_TARGET CONFIG) set(multi_value_args) set(option_args NO_INSTALL) cmake_parse_arguments(PARSE_ARGV 1 arg @@ -639,9 +639,18 @@ function(qt_internal_add_configure_time_tool target_name) set(extra_args "INSTALL_DIRECTORY" "${install_dir}") endif() + if(arg_CONFIG) + set(tool_config "${arg_CONFIG}") + elseif(QT_MULTI_CONFIG_FIRST_CONFIG) + set(tool_config "${arg_QT_MULTI_CONFIG_FIRST_CONFIG}") + else() + set(tool_config "${CMAKE_BUILD_TYPE}") + endif() + string(REPLACE "\\\;" "\\\\\\\;" unparsed_arguments "${arg_UNPARSED_ARGUMENTS}") qt_internal_add_configure_time_executable(${target_name} OUTPUT_NAME ${name} + CONFIG ${tool_config} ${extra_args} ${unparsed_arguments} ) diff --git a/src/tools/syncqt/CMakeLists.txt b/src/tools/syncqt/CMakeLists.txt index 5349e692139..3740b1bd4dc 100644 --- a/src/tools/syncqt/CMakeLists.txt +++ b/src/tools/syncqt/CMakeLists.txt @@ -11,6 +11,11 @@ set(compile_definitions QT_NAMESPACE="${QT_NAMESPACE}" ) +set(config_type "") +if(NOT QT_INTERNAL_AVOID_OVERRIDING_SYNCQT_CONFIG) + set(config_type CONFIG RelWithDebInfo) +endif() + if(CMAKE_OSX_ARCHITECTURES) set(osx_architectures "-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}") endif() @@ -30,5 +35,5 @@ qt_internal_add_configure_time_tool(${target_name} "${osx_architectures}" SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/main.cpp" - CONFIG RelWithDebInfo + ${config_type} )