2011-11-02 34 views
6

Tôi đang viết một số định nghĩa trong parent CMakeLists.txt Tôi muốn những định nghĩa đó được kế thừa trong thư mục con của dự án. Vì vậy, nếu tôi có dự án nhưCMAKE kế thừa định nghĩa từ cha mẹ

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

định nghĩa tôi đã viết trong thư mục gốc CMakeLists.txt nên đi đến con.

Làm cách nào để thực hiện điều đó?

Trả lời

7

Thay đổi thứ tự bao gồm thực hiện những thay đổi đó. Trong quá khứ tôi đã sử dụng

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") 

mà tôi đã thay đổi hai dòng cuối cùng để

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

Điều đó tùy thuộc vào cách bạn sử dụng CMakeLists.txt của A và B trong CMakeLists.txt.

Cách CMAKE là làm add_subdirectory (và tôi khuyên bạn nên sử dụng nó sau khi đã gặp khó khăn trong một thời gian) trong CMakeLists.txt của root cho A và B. Sau đó, A và B có tất cả các biến từ gốc và gốc có tất cả các mục tiêu có sẵn từ A và B.

Các vấn đề liên quan