Qt Creator CMake API: Treat OBJECT libraries as normal libraries

The code had a workaround for CMake versions older than 3.12.

CMake starting with version 3.12 treats OBJECT libraries like other
library types when using target_link_libraries.

Change-Id: I422fa78a53cf97c6ec6481a876f901a56bf54e05
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
Cristian Adam
2025-01-16 12:30:55 +01:00
parent d22b87826b
commit 317adcbf81

View File

@@ -328,30 +328,7 @@ function(add_qtc_depends target_name)
set(depends "${_arg_PRIVATE}") set(depends "${_arg_PRIVATE}")
set(public_depends "${_arg_PUBLIC}") set(public_depends "${_arg_PUBLIC}")
get_target_property(target_type ${target_name} TYPE) target_link_libraries(${target_name} PRIVATE ${depends} PUBLIC ${public_depends})
if (NOT target_type STREQUAL "OBJECT_LIBRARY")
target_link_libraries(${target_name} PRIVATE ${depends} PUBLIC ${public_depends})
else()
list(APPEND object_lib_depends ${depends})
list(APPEND object_public_depends ${public_depends})
endif()
foreach(obj_lib IN LISTS object_lib_depends)
target_compile_options(${target_name} PRIVATE $<TARGET_PROPERTY:${obj_lib},INTERFACE_COMPILE_OPTIONS>)
target_compile_definitions(${target_name} PRIVATE $<TARGET_PROPERTY:${obj_lib},INTERFACE_COMPILE_DEFINITIONS>)
if (obj_lib MATCHES "Qt::.*|GoogleTest")
set(system_include "SYSTEM")
endif()
target_include_directories(${target_name} ${system_include} PRIVATE $<TARGET_PROPERTY:${obj_lib},INTERFACE_INCLUDE_DIRECTORIES>)
endforeach()
foreach(obj_lib IN LISTS object_public_depends)
target_compile_options(${target_name} PUBLIC $<TARGET_PROPERTY:${obj_lib},INTERFACE_COMPILE_OPTIONS>)
target_compile_definitions(${target_name} PUBLIC $<TARGET_PROPERTY:${obj_lib},INTERFACE_COMPILE_DEFINITIONS>)
if (obj_lib MATCHES "Qt::.*|GoogleTest")
set(system_include "SYSTEM")
endif()
target_include_directories(${target_name} ${system_include} PUBLIC $<TARGET_PROPERTY:${obj_lib},INTERFACE_INCLUDE_DIRECTORIES>)
endforeach()
endfunction() endfunction()
function(check_library_dependencies) function(check_library_dependencies)