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}))
|
AND (NOT arg_QMAKE_LIB IN_LIST QT_QMAKE_LIBS_FOR_${arg_MODULE_NAME}))
|
||||||
set(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 "")
|
${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})
|
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()
|
endforeach()
|
||||||
|
set(QT_TARGETS_OF_QMAKE_LIB_${arg_QMAKE_LIB}
|
||||||
|
"${${arg_QMAKE_LIB}_existing_targets}" CACHE INTERNAL "")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user