Ben Scons inşa dir kaynak dir gelen bir Makefile proje kopyalayıp libmoo.a üretmek için bazı komutlar çalıştırmak için almaya çalışıyorum, ancak bir bağımlılık döngüsü hata içine çalıştırıyorum. Detaylar izleyin:SCons: Bağımlılık döngüleri?
./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)
Hata çalışan 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
Ayrıca
.abspath kullanmadan çalıştı, ama bu olmamalı önemli değil mi?
herhangi döngüleri görmüyorum:
- inşa/moo2/libmoo.a inşa gerektirir/moo2/Makefile
- inşa/moo2/Makefile moo2
- inşa/moo2 gerektirir inşa/gerektirir (kaynak /) moo
Nasıl scons bir döngü kabul ediyor? O yapı/moo2/Makefile Belirtmemeyi amaçlanan ne değildir inşa/moo2/libmoo.a bağlıdır düşünüyor.
İlgili tüm önerileri
abspath her yerde SConscript içinde. Ayrıca karşılama :-)
Gönderi için teşekkürler. Çok basitçe bazı dosyaları benim varyant dizine kopyala, benim için iki komutla çalışan bir SConscript dosyası: İthalat ('env') env.Install ('', Glob ('# kernels/*. Cl')) – NoahR