CMAKE从父级继承定义

时间:2011-11-02 12:02:15

标签: cmake

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

这样的项目
root
  |- CMakeLists.txt
  |- A 
  |  |- CMakeLists.txt
  |- B 
     |- CMakeLists.txt

我在根CMakeLists.txt中写的定义应该归到孩子身上。

怎么做?

2 个答案:

答案 0 :(得分: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 :(得分:1)

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

CMAKE-way是在root用户的CMakeLists.txt中为A和B做add_subdirectory(我强烈推荐它,经过一段时间的努力)然后A和B拥有来自root和root的所有变量都有可用的目标来自A和B.