forked from qt-creator/qt-creator
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:
@@ -328,30 +328,7 @@ function(add_qtc_depends target_name)
|
||||
set(depends "${_arg_PRIVATE}")
|
||||
set(public_depends "${_arg_PUBLIC}")
|
||||
|
||||
get_target_property(target_type ${target_name} TYPE)
|
||||
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()
|
||||
|
||||
function(check_library_dependencies)
|
||||
|
Reference in New Issue
Block a user