Check if all required Qt targets are declared when finalizing the module
CMake makes possible to specify a target in the target_link_library call even if the target is not declared yet. This adds flexibility to the target declaration arrangement. For the Qt modules we have to restrict freedom, because of the .prl files generating. If the Qt module depends on another Qt module, the dependecy must be declared before the module finalizing step, otherwise this will cause invalid records in the module .prl file. TODO: The dependency order issue could be solved by using conditional genex's when generating step1 .prl file. But we ask developers to depend on Qt module targets that have been defined before their usage. Fixes: QTBUG-89467 Change-Id: I12ce1000048fd4a2f3334f17720c8df1c680ca20 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
parent
33e098704e
commit
9cd7d83069
@ -225,6 +225,9 @@ function(qt_internal_walk_libs
|
||||
set_property(TARGET ${lib_target_unaliased} PROPERTY IMPORTED_GLOBAL TRUE)
|
||||
endif()
|
||||
endif()
|
||||
elseif("${lib_target}" MATCHES "^Qt::(.*)")
|
||||
message(FATAL_ERROR "The ${CMAKE_MATCH_1} target is mentioned as a dependency for \
|
||||
${target}, but not declared.")
|
||||
else()
|
||||
set(final_lib_name_to_merge "${lib_target}")
|
||||
if(lib_target MATCHES "/([^/]+).framework$")
|
||||
|
Loading…
x
Reference in New Issue
Block a user