CMake: Prevent infinite loop when generating module .pri files
CMake find modules of third-party libraries may create dependency cycles in their imported library targets. For example, Conan's Vulkan::Vulkan is such a candidate. Prevent an infinite loop when generating .pri files for Qt modules that link against such targets. Fixes: QTBUG-95569 Change-Id: I09b4a281930f7c6ce5e8c716fe0ab91e2453a24a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit f7b7262f110ee44f649d2c061832de26d1b3ee5c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
598fbc7e0c
commit
4b227477ff
@ -26,9 +26,14 @@ function(qt_generate_qmake_libraries_pri_content module_name output_root_dir out
|
||||
set(lib_incdir "")
|
||||
set(lib_libdir "")
|
||||
set(lib_libs "")
|
||||
set(seen_targets "")
|
||||
while(lib_targets)
|
||||
list(POP_BACK lib_targets lib_target)
|
||||
if(TARGET ${lib_target})
|
||||
if(${lib_target} IN_LIST seen_targets)
|
||||
continue()
|
||||
endif()
|
||||
list(APPEND seen_targets ${lib_target})
|
||||
get_target_property(lib_target_type ${lib_target} TYPE)
|
||||
if(lib_target_type STREQUAL "INTERFACE_LIBRARY")
|
||||
get_target_property(iface_libs ${lib_target} INTERFACE_LINK_LIBRARIES)
|
||||
|
Loading…
x
Reference in New Issue
Block a user