From 6c0cdcb48cb9ba0a4f01c0ab67480ec21251344c Mon Sep 17 00:00:00 2001 From: "K. R. Walker" Date: Mon, 22 Nov 2021 10:06:11 -0700 Subject: [PATCH] Add optional QT_AUTOTOOL_EXECUTABLE_CONFIG This addition helps when using the Visual Studio generator to build Qt 6. --- cmake/QtAutogenHelpers.cmake | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/cmake/QtAutogenHelpers.cmake b/cmake/QtAutogenHelpers.cmake index 489678bdf2b..45f650072c2 100644 --- a/cmake/QtAutogenHelpers.cmake +++ b/cmake/QtAutogenHelpers.cmake @@ -23,8 +23,20 @@ function(qt_enable_autogen_tool target tool enable) if(NOT autogen_target_depends) set(autogen_target_depends "") endif() - set(tool_executable "$") set(tool_target_name ${QT_CMAKE_EXPORT_NAMESPACE}::${tool}) + set(tool_executable "$") + # AUTO*_EXECUTABLE does not support multi-config generators as of + # CMake 3.21. Instead, we have to pick a preferred configuration. + # See: https://gitlab.kitware.com/cmake/cmake/-/issues/20074 + get_property(multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) + if(multi_config) + if(DEFINED QT_AUTOTOOL_EXECUTABLE_CONFIG) + set(config "${QT_AUTOTOOL_EXECUTABLE_CONFIG}") + else() + set(config "${QT_MULTI_CONFIG_FIRST_CONFIG}") + endif() + set(tool_executable "$/${config}/$") + endif() if(enable) list(APPEND autogen_target_depends ${tool_target_name})