Можно ли написать в cmake функцию, которая будет рекурсивно собирать все связанные библиотеки (типа SHARED)?
Это функция, которая идет только на один уровень и добавляет *-NOTFOUND
объекты в список, которых я бы хотел избежать.
get_target_property(libs App LINK_LIBRARIES)
set(list_libs ${libs})
foreach(lib ${libs})
get_target_property(ls ${lib} LINK_LIBRARIES)
list(APPEND list_libs ${ls})
endforeach()
message(STATUS "Linked libraries: ${list_libs}")
Если возможно, это сделает развертывание довольно тривиальным. Потому что у нас будет окончательный список dll, которые нужно скопировать в папку исполняемой или зависимой библиотеки.
foreach(lib ${list_libs})
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:${lib}> $<TARGET_FILE_DIR:App>
endforeach()