CMake: Fix QMAKE_LIBS_ZSTD when zstd::libzstd_shared does not exist
qt_find_package() sets QT_TARGETS_OF_QMAKE_LIB_<NAME> to all provided targets, without checking if each target exists. qt_generate_qmake_libraries_pri_content() iterates targets listed in QT_TARGETS_OF_QMAKE_LIB_<NAME>. If a target does not exist, qt_generate_qmake_libraries_pri_content() trusts it as a library name and adds it into QMAKE_LIB_<NAME>_<CONFIG> directly. 3073b9c4dec5e5877363794bf81cbd4b84fdb9ee adds zstd::libzstd_shared to the PROVIDED_TARGETS argument of qt_find_package(). When WrapZSTD::WrapZSTD is found but zstd::libzstd_shared doesn't exist, QMAKE_LIBS_ZSTD now contains wrong content "libzstd::libzstd_shared". Pick-to: 6.8 6.7 Change-Id: Id2a79d6c028a80e53d7b9a6a6d11f436d40dde65 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
This commit is contained in:
parent
4dce218ac4
commit
5685323545
@ -258,10 +258,16 @@ macro(qt_find_package)
|
||||
AND (NOT arg_QMAKE_LIB IN_LIST QT_QMAKE_LIBS_FOR_${arg_MODULE_NAME}))
|
||||
set(QT_QMAKE_LIBS_FOR_${arg_MODULE_NAME}
|
||||
${QT_QMAKE_LIBS_FOR_${arg_MODULE_NAME}};${arg_QMAKE_LIB} CACHE INTERNAL "")
|
||||
set(QT_TARGETS_OF_QMAKE_LIB_${arg_QMAKE_LIB} ${arg_PROVIDED_TARGETS} CACHE INTERNAL "")
|
||||
set(${arg_QMAKE_LIB}_existing_targets "")
|
||||
foreach(provided_target ${arg_PROVIDED_TARGETS})
|
||||
set(QT_QMAKE_LIB_OF_TARGET_${provided_target} ${arg_QMAKE_LIB} CACHE INTERNAL "")
|
||||
if(TARGET ${provided_target})
|
||||
list(APPEND ${arg_QMAKE_LIB}_existing_targets "${provided_target}")
|
||||
set(QT_QMAKE_LIB_OF_TARGET_${provided_target}
|
||||
${arg_QMAKE_LIB} CACHE INTERNAL "")
|
||||
endif()
|
||||
endforeach()
|
||||
set(QT_TARGETS_OF_QMAKE_LIB_${arg_QMAKE_LIB}
|
||||
"${${arg_QMAKE_LIB}_existing_targets}" CACHE INTERNAL "")
|
||||
endif()
|
||||
endif()
|
||||
endmacro()
|
||||
|
Loading…
x
Reference in New Issue
Block a user