2011-11-02 139 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獲得。