Моя цель связана с несколькими библиотеками, используя TARGET_LINK_LIBRARIES
с ключевым словом PUBLIC
. Команда INSTALL
выглядит как INSTALL(TARGETS foo DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
. Я хочу каким-то образом заставить cmake включить все (предпочтительно исключая системные библиотеки) библиотеки (только SO), с которыми я связан, для включения в процесс установки. Я пробовал ключевое слово EXPORT, но похоже, что оно влияет только на библиотеки, которые я строю в своем проекте и помечено той же EXPORT
, что и foo
библиотека.
Возможно ли это?
EDIT001: дополнительная информация, которая может повлиять на ответ.
Я использую vcpkg для управления третьими лицами. Так что TARGET_LINK_LIBRARIES
выглядит как
TARGET_LINK_LIBRARIES(foo PUBLIC
GTest::GTest
GTest::Main
${GOOGLE_MOCK}
event
${THRIFT_LIBRARIES}
${Boost_LIBRARIES}
lzo2
sqlite3
${ZeroMQ_LIBRARY}
gRPC::grpc
gRPC::grpc++
xml2
stdc++fs
bfd
-l:libisal.so.2
sgutils2
pthread
uuid
rt
)
Итак, по сути, я хочу получить все эти библиотеки, которые макроопределены vcpkg
, например ${THRIFT_LIBRARIES}, ${Boost_LIBRARIES} and gRPC::grpc
и т. Д.