2011-11-02 11 views
6

Estoy escribiendo alguna definición en el padre CMakeLists.txt Quiero que esa definición sea heredada en el subdirectorio del proyecto. así que si he proyecto comoCMAKE inherit definition from parent

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

la definición que había escrito en CMakeLists.txt raíz debe ir al niño.

¿Cómo hacer eso?

Respuesta

7

Cambie el orden de inclusión realizado esos cambios. En el pasado yo estaba usando

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

la que he cambiado última dos líneas de

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

Eso depende de cómo se utilice el archivo CMakeLists.txt de A y B en CMakeLists.txt.

La forma CMAKE es hacer add_subdirectory (y lo recomiendo encarecidamente, después de haber pasado bastante tiempo) en la raíz de CMakeLists.txt para A y B. Entonces A y B tienen todas las variables de raíz y raíz tiene todos los objetivos disponible desde A y B.