2011-08-17 7 views

답변

13

당신은 당신이는 popen을 통해 실행 외부의 어떤 명령을 실행하기 위해 Command 기능을 사용할 수 있습니다, 그리고 당신은 항상 대상 파일이 존재하는 경우에도 실행 명령을 보장하기 위해 AlwaysBuild 기능을 사용할 수 있습니다. Scons는 종속성주기를 좋아하지 않으므로 소스 목록을 비워 두십시오.

myfile = env.Command('myfile.out', [], 'echo Hello world > $TARGETS') 
env.AlwaysBuild(myfile) 

SCons는 위키는 쉽게 간단한 명령을 많이 설정할 수 있습니다 PhonyTargets위한 조리법이있다.

+0

'myfile.out'을 빌드하는 규칙이 이미있는 경우 대상을 빌드하는 여러 가지 방법이 있다고 불평합니다. 나는 하나의 규칙으로 파일을 만들고 다른 하나는 그것을 수정하고 싶다. –

+0

하나의 목표에 대해 두 가지 규칙을 갖는 것이 나쁜 생각이라고 생각합니다. Scons는 대상이 존재하는 경우 '수정'규칙이 호출되었는지 여부를 어떻게 알 수 있습니까? 각 규칙마다 하나씩 두 개의 대상이 있으면 더 효과적입니다. 또는 '만들기'및 '수정'작업을 모두 수행하는 규칙을 하나 있습니다. –

+0

'AlwaysBuild'는 오해의 소지가있는 이름입니다. 실제로 명령을 실행하기 전에 scons가 평가하는 규칙이 있습니다. –

관련 문제