46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# vim: set ts=8 sts=2 sw=2 tw=99 et ft=python: 
 | 
						|
import os, sys
 | 
						|
import re
 | 
						|
 | 
						|
builder.SetBuildFolder('/')
 | 
						|
 | 
						|
includes = builder.AddFolder('includes')
 | 
						|
 | 
						|
argv = [
 | 
						|
  sys.executable,
 | 
						|
  os.path.join(builder.sourcePath, 'tools', 'buildbot', 'generate_headers.py'),
 | 
						|
  os.path.join(builder.sourcePath),
 | 
						|
  os.path.join(builder.buildPath, 'includes'),
 | 
						|
]
 | 
						|
outputs = [
 | 
						|
  os.path.join(builder.buildFolder, 'includes', 'sourcemod_version_auto.h'),
 | 
						|
  os.path.join(builder.buildFolder, 'includes', 'version_auto.inc'),
 | 
						|
]
 | 
						|
 | 
						|
with open(os.path.join(builder.sourcePath, '.git', 'HEAD')) as fp:
 | 
						|
  head_contents = fp.read().strip()
 | 
						|
  if re.search('^[a-fA-F0-9]{40}$', head_contents):
 | 
						|
    git_head_path = os.path.join(builder.sourcePath, '.git', 'HEAD')
 | 
						|
  else:
 | 
						|
    git_state = head_contents.split(':')[1].strip()
 | 
						|
    git_head_path = os.path.join(builder.sourcePath, '.git', git_state)
 | 
						|
    if not os.path.exists(git_head_path):
 | 
						|
      git_head_path = os.path.join(builder.sourcePath, '.git', 'HEAD')
 | 
						|
 | 
						|
sources = [
 | 
						|
  os.path.join(builder.sourcePath, 'product.version'),
 | 
						|
 | 
						|
  # This is a hack, but we need some way to only run this script when Git changes.
 | 
						|
  git_head_path,
 | 
						|
 | 
						|
  # The script source is a dependency, of course...
 | 
						|
  argv[1]
 | 
						|
]
 | 
						|
output_nodes = builder.AddCommand(
 | 
						|
  inputs=sources,
 | 
						|
  argv=argv,
 | 
						|
  outputs=outputs
 | 
						|
)
 | 
						|
 | 
						|
rvalue = output_nodes
 |