Avoid requiring all Qt targets defined for user projects
When building user projects replace the FATAL_ERROR about the missing Qt targets with the WARNING and mention that the linking might be incomplete. The updated check affected some user projects that used the linking to the versioned targets and our deferred finalizers. If Qt targets are not propagated to the global scope or not found in the top-level directories, finalizers might fail to resolve these targets. Now users will see the warning. The side effect of the missing targets - missing plugin linking, or incomplete deployment, both use walk libs results. Pick-to: 6.5 6.7 6.8 Change-Id: I5c68b548122775424909c62f904f887417816fbc Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
parent
084911a67b
commit
b5fa908514
@ -256,8 +256,15 @@ function(__qt_internal_walk_libs
|
||||
endif()
|
||||
endif()
|
||||
elseif("${lib_target}" MATCHES "^(Qt|${QT_CMAKE_EXPORT_NAMESPACE})::(.*)")
|
||||
message(FATAL_ERROR "The ${CMAKE_MATCH_2} target is mentioned as a dependency for \
|
||||
${target}, but not declared.")
|
||||
if(QT_BUILDING_QT OR QT_BUILD_STANDALONE_TESTS)
|
||||
set(message_type FATAL_ERROR)
|
||||
set(message_addition "")
|
||||
else()
|
||||
set(message_type WARNING)
|
||||
set(message_addition " The linking might be incomplete.")
|
||||
endif()
|
||||
message(${message_type} "The ${CMAKE_MATCH_2} target is mentioned as a dependency"
|
||||
" for ${target}, but not declared.${message_addition}")
|
||||
else()
|
||||
if(NOT operation MATCHES "^(collect|direct)_targets$")
|
||||
set(final_lib_name_to_merge "${lib_target}")
|
||||
|
Loading…
x
Reference in New Issue
Block a user