我尝试设置一个新的cMake项目,该项目创建了两个库。 依赖于其他第三方库的核心库 libCore.dll 和使用libCore库的de libWrap.dll 当然需要第三方库。
对于 libCore 的安装,我添加了以下两个安装命令,这将导致包含库和依赖项的libCore文件夹:
install(TARGETS libCore
CONFIGURATIONS Release
PUBLIC_HEADER
DESTINATION "libCore/include"
RUNTIME
DESTINATION "libCore/bin"
RESOURCE
DESTINATION "libCore/bin"
LIBRARY
DESTINATION "libCore/lib"
ARCHIVE
DESTINATION "libCore/lib"
)
install(FILES ${THIRD_PARTY_LIBRARIES}
CONFIGURATIONS Release
DESTINATION "libCore/bin"
)
到目前为止一切顺利。现在,当我在另一个目标 libWrap 中使用该库(在同一cMake项目中)时,我可以成功链接到它们并构建该库。我使用以下命令安装了 libWrap :
install(TARGETS libWrap libCore
CONFIGURATIONS Release
PUBLIC_HEADER
DESTINATION "libWrap/include"
RUNTIME
DESTINATION "libWrap/bin"
RESOURCE
DESTINATION "libWrap/bin"
LIBRARY
DESTINATION "libWrap/lib"
ARCHIVE
DESTINATION "libWrap/lib"
)
这将成功将 libWrap 安装在libWrap目录中,并且还复制了 libCore 。不幸的是,与instal(FILE ...)
一起安装的第三方依赖项未安装到libWrap目录中。
有人知道如何声明需要的第三方二进制文件,并自动将其与 libCore 目标一起安装吗?
谢谢您的提示!