You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					58 lines
				
				1.7 KiB
			
		
		
			
		
	
	
					58 lines
				
				1.7 KiB
			| 
								 
											10 years ago
										 
									 | 
							
								#/usr/bin/env python -
							 | 
						||
| 
								 | 
							
								from SCons.Script import DefaultEnvironment
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								env = DefaultEnvironment()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import os
							 | 
						||
| 
								 | 
							
								import errno
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def make_sure_path_exists(path):
							 | 
						||
| 
								 | 
							
								    try:
							 | 
						||
| 
								 | 
							
								        os.makedirs(path)
							 | 
						||
| 
								 | 
							
								    except OSError as exception:
							 | 
						||
| 
								 | 
							
								        if exception.errno != errno.EEXIST:
							 | 
						||
| 
								 | 
							
								            raise
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import subprocess
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								make_sure_path_exists(env.subst('$BUILDSRC_DIR'))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from datetime import datetime
							 | 
						||
| 
								 | 
							
								import time
							 | 
						||
| 
								 | 
							
								import string
							 | 
						||
| 
								 | 
							
								import re
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								p = subprocess.Popen(['git', 'symbolic-ref', '-q', '--short', 'HEAD'], stdout=subprocess.PIPE)
							 | 
						||
| 
								 | 
							
								BRANCH = p.stdout.readline().rstrip()
							 | 
						||
| 
								 | 
							
								p = subprocess.Popen(['git', 'describe', '--tags', '--first-parent'], stdout=subprocess.PIPE)
							 | 
						||
| 
								 | 
							
								RAW_VERSION = p.stdout.readline().rstrip()
							 | 
						||
| 
								 | 
							
								s = re.search('(.*)(-.*)(-.*)',RAW_VERSION)
							 | 
						||
| 
								 | 
							
								SHORT_VERSION = s.group(1)+' '+BRANCH
							 | 
						||
| 
								 | 
							
								DETAILED_VERSION = string.replace(RAW_VERSION,'-',' '+BRANCH+'-',1)
							 | 
						||
| 
								 | 
							
								p = subprocess.Popen(['git', 'config', '--local', '--get', 'remote.origin.url'], stdout=subprocess.PIPE)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								try:
							 | 
						||
| 
								 | 
							
								  s = re.search('(.*github.com:)(.*)', p.stdout.readline().rstrip())
							 | 
						||
| 
								 | 
							
								  URL = string.replace("https://github.com/"+s.group(2), ".git", "/")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  url_text = """#define SOURCE_CODE_URL  "%s"
							 | 
						||
| 
								 | 
							
								// Deprecated URL definition
							 | 
						||
| 
								 | 
							
								#define FIRMWARE_URL  "%s"
							 | 
						||
| 
								 | 
							
								""" % (URL, URL)
							 | 
						||
| 
								 | 
							
								except Exception, e:
							 | 
						||
| 
								 | 
							
								  url_text = ""
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								version_header_text = """/* This file is automatically generated by a compile time hook
							 | 
						||
| 
								 | 
							
								 * Do not manually edit it
							 | 
						||
| 
								 | 
							
								 * It does not get committed to the repository
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define BUILD_UNIX_DATETIME %s
							 | 
						||
| 
								 | 
							
								#define STRING_DISTRIBUTION_DATE "%s"
							 | 
						||
| 
								 | 
							
								#define SHORT_BUILD_VERSION "%s"
							 | 
						||
| 
								 | 
							
								#define DETAILED_BUILD_VERSION "%s"
							 | 
						||
| 
								 | 
							
								%s""" % (int(time.time()), datetime.now().strftime('%Y-%m-%d %H:%M'),SHORT_VERSION, DETAILED_VERSION, url_text)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								open(env.subst('$BUILDSRC_DIR/_Version.h'), 'w').write(version_header_text)
							 |