2011-11-02 136 views
6

我在父CMakeLists.txt中写了一些定义 我希望那些定义在项目的子目录中被继承。 所以如果我有一个像CMAKE从父项继承定义

root 
    |- CMakeLists.txt 
    |- A 
    | |- CMakeLists.txt 
    |- B 
    |- CMakeLists.txt 

我写了根的CMakeLists.txt定义项目应该去的孩子。

如何做到这一点?

回答

7

更改包含这些更改的顺序。在过去,我用

CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0) 
SET(ENV{OSDEP} "linux") 
SET(ENV{BIT} 64) 
SET(ENV{XUL} 5000) 
ADD_SUBDIRECTORY(lib/src/json) 
add_definitions("-_DDEBUG") 

这是我最后两行改为

add_definitions("-_DDEBUG") 
ADD_SUBDIRECTORY(lib/src/json) 
1

这取决于您如何在CMakeLists.txt中使用A和B的CMakeLists.txt。

CMAKE方式是在根的CMakeLists.txt中为A和B做add_subdirectory(并强烈推荐它,经过很长一段时间的努力之后)。然后A和B具有来自root和root的所有变量都具有所有目标可从A和B获得。