From 2103a9a77c12f7f4416ca87c4ceac7af86a0ad81 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Thu, 28 Nov 2024 17:50:31 +0100 Subject: [PATCH] CMakePM: Fix loading conan projects that specifcy CMakeDeps generator `conan_install` will error out if the `-g CMakeDeps` argument is passed and inside the conanfile.py the CMakeDeps generator is also used. Fixes: QTCREATORBUG-32076 Change-Id: I6ba3f3dc6238d0f24837a13969361821b4a5a5a4 Reviewed-by: Marcus Tillmanns --- src/share/3rdparty/package-manager/auto-setup.cmake | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/share/3rdparty/package-manager/auto-setup.cmake b/src/share/3rdparty/package-manager/auto-setup.cmake index 867b7f41ee6..9928780d04c 100644 --- a/src/share/3rdparty/package-manager/auto-setup.cmake +++ b/src/share/3rdparty/package-manager/auto-setup.cmake @@ -110,6 +110,14 @@ macro(qtc_auto_setup_conan) file(COPY "${conanfile_txt}" DESTINATION "${CMAKE_BINARY_DIR}/conan-dependencies/") + # conanfile should have a generator specified, when both file and conan_install + # specifcy the CMakeDeps generator, conan_install will issue an error + file(READ "${conanfile_txt}" conanfile_text_content) + unset(conan_generator) + if (NOT "${conanfile_text_content}" MATCHES ".*CMakeDeps.*") + set(conan_generator "-g CMakeDeps") + endif() + file(WRITE "${CMAKE_BINARY_DIR}/conan-dependencies/toolchain.cmake" " set(CMAKE_C_COMPILER \"${CMAKE_C_COMPILER}\") set(CMAKE_CXX_COMPILER \"${CMAKE_CXX_COMPILER}\") @@ -143,7 +151,7 @@ macro(qtc_auto_setup_conan) -pr \"${CMAKE_BINARY_DIR}/conan-dependencies/conan_host_profile\" --build=${QT_CREATOR_CONAN_BUILD_POLICY} -s build_type=\${type} - -g CMakeDeps) + ${conan_generator}) endforeach() get_property(CONAN_INSTALL_SUCCESS GLOBAL PROPERTY CONAN_INSTALL_SUCCESS)