Estoy tratando de hacer que SCons copie un proyecto de Makefile desde el directorio de origen al directorio de compilación y ejecute algunos comandos para producir libmoo.a, pero me estoy encontrando con un error de ciclo de dependencia. Detalles siguen:SCons: Ciclos de dependencia?
./SConstruct:
env = Environment()
Export('env')
dirs = ['.']
variant_dir = 'build'
for dir in dirs:
SConscript(dir + '/' + 'SConscript', variant_dir=variant_dir + '/' + dir, duplicate=0)
./SConscript:
import os
Import('env')
env.Command(env.Dir('moo2').abspath, env.Dir('#moo').abspath, ["echo copying moo to the build dir", Copy("$TARGET", "$SOURCE")])
env.Command(env.Dir('moo2/Makefile').abspath, env.Dir('moo2').abspath, 'echo would run moo2.configure')
moolib = env.Command(env.Dir('moo2/libmoo.a').abspath, env.Dir('moo2/Makefile').abspath, 'echo would run make')
Default(moolib)
Error al ejecutar scons:
scons: *** Found dependency cycle(s):
build/moo2/Makefile -> build/moo2 -> build/moo2/Makefile
build/moo2/libmoo.a -> build/moo2 -> build/moo2/Makefile -> build/moo2/libmoo.a
también trató sin utilizar .abspath, pero que no deben no importa, ¿verdad?
no veo ningún ciclos:
- acumulación/moo2/libmoo.a requiere construir/moo2/Makefile
- acumulación/moo2/Makefile requiere la acumulación/moo2
- acumulación/moo2 requiere (fuente /) moo
¿Cómo está scons seeing a cycle? Parece pensar que build/moo2/Makefile depende de build/moo2/libmoo.a, que no es lo que pretendía especificar.
Cualquier sugerencia relacionados también son bienvenidos :-)
Gracias por la publicación. Demasiado simplemente copie algunos archivos en mi directorio de variantes, un archivo SConscript con dos comandos trabajados para mí: Importar ('env') env.Install ('', Glob ('# kernels/*. Cl')) – NoahR