cmake:添加依赖关系不在子目录中

前端之家收集整理的这篇文章主要介绍了cmake:添加依赖关系不在子目录中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设有以下目录结构:
root
  |
  +--projects
  |      |
  |      +-test
  |         |
  |         +-CMakeFiles.txt
  |
  +--libs
       |
       +-testlib
            |
            +-CMakeFiles.txt

测试包含CMakeFiles.txt,testlib也包含CMakeFiles.txt. “test”生成可执行文件,“testlib”生成静态库.

我想要“测试”链接“testlib”而不使用符号链接,而不要将“testlib”库移动到“test”中的子目录中.

因为“testlib”不是“test”的子目录,所以我不能做

add_subdirectory("../../libs/testlib")

在测试的CMakeFiles.txt中 – cmake将抱怨“testlib”不在“test”子目录中.

另外,因为系统有几个不同的编译器,所以我不能简单地将“testlib”库安装到某种中央目录中,所以我想要测试来编译testlib的本地副本并与之链接(就好像testlib是一个子目录).如果已经更改,我也希望“测试”项目自动重建“testlib”.

那么我该怎么处理呢? cmake 2.8.4,winxp sp3.

您可以在根目录中提供顶级的CMakeLists.txt,或者为add_subdirectory命令提供一个二进制目录;例如
add_subdirectory("../../libs/testlib" "${CMAKE_CURRENT_BINARY_DIR}/testlib_build")

这将在当前构建目录中创建一个名为testlib_build的子目录,其中包含生成的testlib项目文件,但不包含源代码.

有关更多信息,请运行

cmake --help-command ADD_SUBDIRECTORY

猜你在找的设计模式相关文章