Sto cercando di ottenere da SCons la copia di un progetto Makefile dalla directory di origine alla directory di build ed eseguire alcuni comandi per produrre libmoo.a, ma sto correndo in un errore di ciclo delle dipendenze. Dettagli seguono:SCons: cicli di dipendenza?
./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)
Errore durante l'esecuzione 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
provato anche senza l'utilizzo di .abspath, ma che shouldn non importa, vero?
non vedo alcun cicli:
- build/moo2/libmoo.a richiede costruire/moo2/Makefile
- build/moo2/Makefile richiede build/moo2
- build/Moo2 richiede (source /) moo
In che modo gli scons vedono un ciclo? Sembra che build/moo2/Makefile dipenda da build/moo2/libmoo.a, che non è quello che intendevo specificare.
Eventuali suggerimenti relativi sono i benvenuti :-)
Grazie per il post. Copia semplicemente alcuni file nella mia variante, un file SConscript con due comandi ha funzionato per me: Import ('env') env.Install ('', Glob ('# kernel/*. Cl')) – NoahR