현재 스킨 빌드에 현재 git 리비전을 가져 오기 위해 마술을 사용 중입니다. 버전 CPPDEFINES에 스틱을 추가하기 만하면됩니다. 버전이 바뀌고 scons가 모든 파일을 변경하기 전까지는 변경된 파일이 아닌 모든 것을 다시 작성하기까지는 아주 잘 작동합니다. 모든 파일 사용에 대한 정의가 변경 되었기 때문에.빌드 빌드 버전을 스콘 빌드에 추가하는 방법
이상적으로는 git_version.cpp
이라는 사용자 정의 빌더를 사용하여 파일을 생성하고 은 올바른 태그를 리턴하는 함수를 가지고 있습니다. 그런 식으로 하나의 파일 만 다시 작성됩니다.
이제 정확히 어떻게하는지 보여주는 자습서를 보았을 것입니다. 그러나 그것을 추적 할 수는 없습니다. 그리고
그래서 어떤 포인터를 감상 할 수있다
...어쨌든 단지 참조 할 수 있도록이 내가 현재 뭘하는지는 ... 사용자 정의 빌더 SCons는에 조금 이상한 물건을 찾을 수 :
# Lets get the version from git
# first get the base version
git_sha = subprocess.Popen(["git","rev-parse","--short=10","HEAD"], stdout=subprocess.PIPE).communicate()[0].strip()
p1 = subprocess.Popen(["git", "status"], stdout=subprocess.PIPE)
p2 = subprocess.Popen(["grep", "Changed but not updated\\|Changes to be committed"], stdin=p1.stdout,stdout=subprocess.PIPE)
result = p2.communicate()[0].strip()
if result!="":
git_sha += "[MOD]"
print "Building version %s"%git_sha
env = Environment()
env.Append(CPPDEFINES={'GITSHAMOD':'"\\"%s\\""'%git_sha})