Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
依赖于Cmake项目的Cmake项目_Cmake - Fatal编程技术网

依赖于Cmake项目的Cmake项目

依赖于Cmake项目的Cmake项目,cmake,Cmake,我有一个cmake项目,它依赖于另一个库。另一个库也使用cmake,但它的构建步骤更像是一个独立的项目,而不是一个库。因此,当我的cmake试图向库cmake中添加_子目录()时,我会遇到错误,例如“CPack.cmake已经被包含!!”和“CPack自述资源文件找不到”。因此,除非有什么巧妙的技巧,否则我假设在这里添加_子目录()不是一个现实的选择?将图书馆建筑与我的项目建筑相结合的最佳选择是什么 我想到的几个想法是: 使用自定义命令动态生成库的cmake生成文件,然后使用更多自定义命令启动生

我有一个cmake项目,它依赖于另一个库。另一个库也使用cmake,但它的构建步骤更像是一个独立的项目,而不是一个库。因此,当我的cmake试图
向库cmake中添加_子目录()
时,我会遇到错误,例如“CPack.cmake已经被包含!!”和“CPack自述资源文件找不到”。因此,除非有什么巧妙的技巧,否则我假设在这里添加_子目录()不是一个现实的选择?将图书馆建筑与我的项目建筑相结合的最佳选择是什么

我想到的几个想法是:

  • 使用自定义命令动态生成库的cmake生成文件,然后使用更多自定义命令启动生成

  • 只需手动构建库,并在我的项目中存储各种os/arch/编译器组合的预构建二进制文件


  • 想法?

    您最好的选择可能是使用模块,特别是
    外部项目添加功能

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

    如果您正在考虑执行选项1,只需修改另一个库的CMakeLists.txt,以便通过
    add_子目录
    将其包含在您自己的项目中,可能会更容易