我正在尝试使用CMake为一个中等规模的项目建立一个构建系统,该项目由几个较小的项目组成,其中一些项目是在外部开发的。我想要的目录结构是这样的:
BASEDIR
|--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)'或者是否需要创建另一个文件。感谢。
答案 0 :(得分:0)
不确定这是否是您要找的,但是如下所述创建了一个libAConfig.cmake: How to create Project config file可能会成功。