SConsにソースディレクトリからビルドディレクトリにMakefileプロジェクトをコピーさせ、libmoo.aを生成するコマンドを実行しようとしていますが、依存サイクルエラーが発生しています。詳細は以下のとおりです。SCons:依存関係のサイクル?
./SConstruct:
env = Environment()
Export('env')
dirs = ['.']
variant_dir = 'build'
for dir in dirs:
SConscript(dir + '/' + 'SConscript', variant_dir=variant_dir + '/' + dir, duplicate=0)
./SConscript:sconsのを実行している
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)
をエラー:
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
はまた.abspathを使用せずに試してみましたが、それshouldnそれは問題なのでしょうか?
私は、任意のサイクルが表示されない:
- ビルド/ MoO2が/ libmoo.a
- ビルド/ MoO2が/ Makefileを必要とし、ビルド/ MoO2が/ Makefileは、ビルドが必要です/ MoO2が
- ビルド/ MoO2がが必要です(ソース/)ムー
どのようにサイクルが見られますか? build/moo2/Makefileはbuild/moo2/libmoo.aに依存していると思います。これは私が指定しようとしていないものです。
どれ関連の提案もenv.Dir( 'MOO')の必要はありません:-)
ポストに感謝します。いくつかのファイルを私のバリアントディレクトリにコピーするだけで、2つのコマンドを使ってSConscriptファイルを作成することができます: Import( 'env') env.Install( ''、Glob( '#kernels/*。cl')) – NoahR