2013-07-04 2 views
2

waf에 대상이 여러 개 있습니다 (다른 여러 파일에 따라 다름). 해당 종속성을 으로 나열하는 프로그램이 있으며이를 사용하고 waf으로 전달합니다. 즉, 대상이 T이라면 에 대한 모든 종속성을 나열하는 프로그램입니다. 그러나 나는 이것을 을 bld.add_manual_dependency()에 어떻게 넘겨 줄지에 관해 명확하지 않다.Waf, 수동 종속성 추가 중 문제가 발생했습니다.

bld.add_manual_dependency(bld.path.find_or_declare('T'), bld.path.find_resource('Dep1')) 

을하지만 두 번째 인수로 목록을 전달하면 받아 들일 것 같다,하지만 나던 작품! :

의존성과 같은 단일 파일은 잘 동작하는 것 여러 파일을 전달하는 방법을 알고 싶습니다 (ant_glob()이 아니라 프로그램에서 선택).

+2

안녕하세요, 귀하의 필요 사항에 대해 좀 더 구체적으로 설명해 주실 수 있습니까? waf에는 작업 생성자가 포함되어 파일 종속성을 검색 할 수있는 도구 시스템이 있습니다. 외부 프로그램이 종속성의 이름을 제공하고 소스 폴더의 노드로 해석하도록 요청할 수 있습니다. –

+0

오랜 시간이 지난 후 이것을 방문하십시오!, @ Zouloub - 오케이, 나는 생각합니다. 왜냐하면 외부 프로그램이'stdout'에 이름을 나열하기 때문입니다. – vyom

답변

0

종속성에서 대상을 생성하는 방법에 따라 다릅니다. 로 간주됩니다 그것에 hello.txt 모두 hello.txtthere.txt을 보내고 : out.txt가 고양이에 의해 생산됩니다

def build(bld): 
    bld(
     rule = 'cat ${SRC[0].abspath()} > ${TGT}', 
     source = ['hello.txt', 'there.txt'], 
     target = 'out.txt' 
    ) 

당신이 볼 수 있듯이, 상기 간단한 경우, 당신은 단지 소스와 빌드 규칙과 대상을 사용 타겟 종속성. 여기서 wscript의 종속성을 하드 코드했지만, 물론 의존성 목록을 생성하는 프로그램을 호출 할 수 있습니다.

+0

이제는 제가 이것에서 옮겨 왔던 오래된 게시물입니다. 그렇지만 여전히 IIRC는 소스가 아닌 의존성을 추가하는 문제였습니다. '.c' 파일을 컴파일 할 때 'h'파일을 만들었지 만, 다른 언어 도구의 경우는 – vyom

+0

입니다. 'there.txt'는 프로세스에서 사용되지는 않지만 종속성입니다. 어쩌면 다른 것을 의미하는 것일 수도 있습니다. –

+0

좋아, 나는 소스를 다시 확인해야한다, 내가 막혔던 정확하게 기억할 수 없다! :( – vyom

관련 문제