2012-06-03 300 views
2

我试图建立一个使用CMake的构建系统,该构建系统是由几个较小的项目组成的中等规模的项目,其中一些项目是在外部开发的。目录结构,我想是这样的: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 

我认为力霸和libB作为单独的项目。有可能,libA的配置还会描述链接到外部库(如libxml2等),并设置适当的链接选项并包含这些包的路径。我希望libB依赖于libB并能够获取一组宏来自动附加到,例如,它是LD_LIBRARY_PATH,INCLUDES变量等等,以便它可以适当地链接到libA和所有libA需要的内容一种可扩展的方式。

我曾与另一个配置管理工具,这很好,但没有成为一个行业标准,所以想转移到cmake。我还没有看到CMake如何处理这些相互依赖关系的一个很好的例子 - 任何人都知道一个好的起点?我是否需要'包含($(CMAKE_MODULES_PATH)libA/CMakeLists.txt)'还是有另一个我需要创建的文件。谢谢。

回答

0

不知道这是你在找什么,但创建一个libAConfig.cmake,如下所述: How to create Project config file可能会伎俩。

+0

不知道如何使这个文件会有所帮助。虽然我们在我们的项目中有这样的设置。 – Versatile