Próbuję uzyskać SCons do skopiowania projektu Makefile z katalogu źródłowego do katalogu kompilacji i uruchomienia niektórych poleceń w celu utworzenia biblioteki libmoo.a, ale pojawia się błąd cyklu zależności. Szczegóły poniżej:SCONS: Cykle zależności?
./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)
Błąd uruchomiony 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
też próbował bez korzystania .abspath, ale że powinnam ma znaczenie, prawda?
nie widzę żadnych cykli:
- build/MoO2/libmoo.a wymaga budowania/MoO2/Makefile
- build/MoO2/Makefile wymaga build/MoO2
- build/MoO2 wymaga (źródło /) moo
W jaki sposób scons widzą cykl? Wydaje się, że build/moo2/Makefile zależy od build/moo2/libmoo.a, co nie jest tym, co zamierzałem określić.
wszelkich powiązanych sugestie są mile widziane :-)
Dzięki za wpis. Po prostu skopiuj niektóre pliki do mojego katalogu variant, plik SConscript z dwoma komendami pracował dla mnie: Import ('env') env.Install ('', Glob ('# jądra/*. Cl')) – NoahR