我的目标与几个使用TARGET_LINK_LIBRARIESwithPUBLIC关键字的库链接,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
)
Run Code Online (Sandbox Code Playgroud)
所以,本质上我想要实现的是获取所有这些被宏化的库vcpkg,像${THRIFT_LIBRARIES}, ${Boost_LIBRARIES} and gRPC::grpc等等