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 <marcus.tillmanns@qt.io>
This commit is contained in:
Cristian Adam
2024-11-28 17:50:31 +01:00
parent 66d3e5102a
commit 2103a9a77c

View File

@@ -110,6 +110,14 @@ macro(qtc_auto_setup_conan)
file(COPY "${conanfile_txt}" DESTINATION "${CMAKE_BINARY_DIR}/conan-dependencies/") 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" " file(WRITE "${CMAKE_BINARY_DIR}/conan-dependencies/toolchain.cmake" "
set(CMAKE_C_COMPILER \"${CMAKE_C_COMPILER}\") set(CMAKE_C_COMPILER \"${CMAKE_C_COMPILER}\")
set(CMAKE_CXX_COMPILER \"${CMAKE_CXX_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\" -pr \"${CMAKE_BINARY_DIR}/conan-dependencies/conan_host_profile\"
--build=${QT_CREATOR_CONAN_BUILD_POLICY} --build=${QT_CREATOR_CONAN_BUILD_POLICY}
-s build_type=\${type} -s build_type=\${type}
-g CMakeDeps) ${conan_generator})
endforeach() endforeach()
get_property(CONAN_INSTALL_SUCCESS GLOBAL PROPERTY CONAN_INSTALL_SUCCESS) get_property(CONAN_INSTALL_SUCCESS GLOBAL PROPERTY CONAN_INSTALL_SUCCESS)