2010-09-14 14 views
6

Tengo un proyecto de biblioteca que contiene algunas muestras en una subcarpeta.Crear una compilación jerárquica con SCons

La biblioteca en sí tiene un archivo SConstruct y cada muestra tiene su propia carpeta y su propio archivo SConstruct.

Me gustaría agregar un objetivo al archivo principal (raíz) SConstruct que me permitiría compilar la biblioteca como de costumbre, y todas las muestras, a la vez.

¿Existe un mecanismo/generador para esto?

P.S: No quiero tener solo un gran archivo SConstruct porque quiero que las carpetas de muestras permanezcan independientes.

Respuesta

8

http://www.scons.org/doc/production/HTML/scons-man.html

Creación de una construcción jerárquica

en cuenta que los nombres de los archivos especificados en SConscript de archivo de un subdirectorio son en relación con ese subdirectorio.

SConstruct:

env = Environment() 
env.Program(target = 'foo', source = 'foo.c') 

SConscript('sub/SConscript') 

sub/SConscript:

env = Environment() 
# Builds sub/foo from sub/foo.c 
env.Program(target = 'foo', source = 'foo.c') 

SConscript('dir/SConscript') 

sub/dir/SConscript:

env = Environment() 
# Builds sub/dir/foo from sub/dir/foo.c 
env.Program(target = 'foo', source = 'foo.c') 
+0

No se pudo encontrar en los documentos. Exactamente lo que necesitaba. Muchas gracias. – ereOn

4

Para aquellos como yo que viene a esta pregunta de Google, Encontré un ejemplo más completo de construir una biblioteca y un código que llamaba es here.

(Disculpa si esta respuesta a una pregunta anterior es mal vista - una gran cantidad de búsquedas de varias combinaciones de "scons", "subdirectorio", "jerarquización", "compilación", etc. sugieren esta página, y yo me gusta salvar a los demás las más de 8 horas que acabo de pasar intentando que las construcciones jerárquicas funcionen limpiamente).

+0

Esa es una buena referencia de hecho. Después de varios años, [finalmente pude lograr mis objetivos] (https://github.com/freelan-developers/freelan-all) usando compilaciones jerárquicas de SCons: el proyecto está separado en varias bibliotecas/muestras/aplicaciones que usan el mismo SCons archivos. – ereOn

Cuestiones relacionadas