依赖于cmake项目的Cmake项目

时间:2015-09-13 20:09:21

标签: cmake

我有一个cmake项目,它依赖于另一个库。其他库也使用cmake,但其构建步骤似乎更像是独立项目而不是库。因此,当我的cmake尝试add_subdirectory()到库cmake时,我会收到错误,例如“CPack.cmake已被包含!!”并且找不到“CPack自述文件资源文件”。所以,除非有一些聪明的技巧,我假设add_subdirectory()在这里不是一个现实的选择?将图书馆建设整合到项目建设中的最佳选择是什么?

我想到的几个想法是:

  1. 使用自定义命令动态生成库的cmake构建文件,然后使用更多自定义命令启动构建。

  2. 只需手动构建库并使用我的项目存储预构建的二进制文件,以用于各种os / arch /编译器组合。

  3. 思想?

1 个答案:

答案 0 :(得分:4)

您最好的选择是使用ExternalProject模块 - 特别是ExternalProject_Add功能。

这将允许您执行以下任何或所有操作:下载,更新/修补,配置,构建,安装和测试依赖库。它适用于任何构建系统,但显然特别适合与CMake项目一起使用。

如果你 正在考虑做你的选择1 - 可能更容易看到修改其他库的CMakeLists.txt以允许它被包含在你自己的项目中add_subdirectory