SCons가 소스 dir에서 빌드 dir로 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 :
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는 :
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이다/메이크
- 빌드/MoO2이다/메이크 MoO2이다가
- 빌드/MoO2이다 필요한 빌드/필요 (소스 /) 무
주기가 어떻게 보이나요? build/moo2/Makefile은 build/moo2/libmoo.a에 의존한다고 생각하는 것 같습니다. 이것은 의도 한 것이 아닙니다.
모든 관련 제안
는 abspath 어디서나 SConscript 인치도 환영합니다 :-)
포스트에 감사드립니다. 너무 간단하게 몇 가지 파일을 내 variant 디렉토리에 복사하는 두 가지 명령을 사용하는 SConscript 파일 : 가져 오기 ('env') env.Install ('', Glob ('# kernels/* .cl')) – NoahR