我正在尝试使用 CMake 为一个中等规模的项目建立一个构建系统,该项目由几个较小的项目组成,其中一些是外部开发的。我想要的目录结构是这样的:
基于的
|--libA
| |-src ( .cxx, source files )
| |-libA ( header files, such that #include statements are "libA/headerA.h" )
| |-bin ( executable, binary, object files )
| |-build ( CMake output, makefiles, platform specific stuff, not in CVS/SVN )
| |-CMakeLists.txt
|
|--libB
| |-- ..similar structure
我认为 libA 和 libB 是独立的项目。潜在地,libA 的配置还将描述链接到外部库(如 libxml2 等)并设置适当的链接选项并包含这些包的路径。我想让 libB 依赖于 libB 并能够获取一组宏以自动附加到,例如,它的 LD_LIBRARY_PATH、INCLUDES 变量等......这样它就可以适当地链接到 libA 和 libA 需要的所有内容一种可扩展的方式。
我使用过另一个配置管理工具,它做得很好,但没有成为行业标准,因此想转向 cmake。我还没有看到 CMake 如何处理这些相互依赖关系的一个很好的例子——有人知道一个好的起点吗?我只需要'include($(CMAKE_MODULES_PATH) libA/CMakeLists.txt)' 还是需要创建另一个文件。谢谢。