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

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

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

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

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

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

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

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

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

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

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

有关更多信息,请运行

  1. cmake --help-command ADD_SUBDIRECTORY

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