2012-03-16 3 views
0

가정하자 나는 자회사 SConscript에 건설 환경을 내보내는 SConstruct 있습니다 명령으로 내가 호출 할 수 있도록 env에 명령 줄 변수 foo를 삽입기존 건설 환경에 새로운 명령 행 변수를 추가하는 방법은 무엇입니까?

Export('SConscript', 'env') 

내가 SConscript에 대한 싶습니다 빌드를

scons foo=bar 

가능한가, 또는 이러한 명령 줄 변수가 환경 생성자에 제공되도록 지원해야합니까?

답변

1

환경 in the subsidiary SConscript` 새로운 변수를 포함하는 새로운 Variables 객체를 생성 한 후 업데이트 : 나는 명확하게 질문을 이해 모르겠지만, 내 대답은

Import('env') 
vars = Variables() 
vars.Add('foo', help='a command line variable named foo') 
vars.Update(env) 
1

합니다.

Scons는 명령 줄 매개 변수를 매우 잘 지원합니다. 귀하의 경우에는 ARGUMENTS.get('command_line_parameter', [default]) 기능을 사용하십시오. 변수를 환경에 삽입하려면 인덱스 연산자 [] 만 사용하십시오.

예 :

env['foo'] = ARGUMENTS.get('foo') # if parameter not set, returns None 

또는 기본 값

이 :

env['foo'] = ARGUMENTS.get('foo', 'bar') 

당신은 SCons는 가이드의 자세한 내용에 대한 command-line parameters handling을 발견 할 수 있습니다. 변수를 업데이트 할 때

0

또한 환경에 명령 줄 값을 전달할 수 있습니다

vars.Update(env, ARGUMENTS) 
관련 문제