cMake从子项目安装第三方库

时间:2020-01-14 17:07:33

标签: cmake shared-libraries

我尝试设置一个新的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 目标一起安装吗?

谢谢您的提示!

0 个答案:

没有答案