2012-06-03 297 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