minor = max(4, min(7, gcc_version[1]))\r
TOOLCHAIN = 'GCC4' + str(minor)\r
\r
-def git_svn_info():\r
+def git_based_version():\r
dir = os.getcwd()\r
- os.chdir('OvmfPkg')\r
- stdout = run_and_capture_output(args=('git', 'svn', 'info'))\r
+ if not os.path.exists('.git'):\r
+ os.chdir('OvmfPkg')\r
+ stdout = run_and_capture_output(args=('git', 'log',\r
+ '-n', '1',\r
+ '--abbrev-commit'))\r
+ regex = re.compile(r'^\s*git-svn-id:\s+\S+@(\d+)\s+[0-9a-f\-]+$',\r
+ re.MULTILINE)\r
+ mo = regex.search(stdout)\r
+ if mo:\r
+ version = 'r' + mo.group(1)\r
+ else:\r
+ version = stdout.split(None, 3)[1]\r
os.chdir(dir)\r
- return stdout\r
+ return version\r
\r
def svn_info():\r
dir = os.getcwd()\r
os.chdir(dir)\r
return stdout\r
\r
-def get_svn_info_output():\r
- if os.path.exists(os.path.join('OvmfPkg', '.svn')):\r
- return svn_info()\r
- else:\r
- return git_svn_info()\r
+def svn_based_version():\r
+ buf = svn_info()\r
+ revision_re = re.compile('^Revision\:\s*([\da-f]+)$', re.MULTILINE)\r
+ mo = revision_re.search(buf)\r
+ assert(mo is not None)\r
+ return 'r' + mo.group(1)\r
\r
def get_revision():\r
- buf = get_svn_info_output()\r
- revision_re = re.compile('^Revision\:\s*(\d+)$', re.MULTILINE)\r
- mo = revision_re.search(buf)\r
- if mo is not None:\r
- return int(mo.group(1))\r
+ if os.path.exists(os.path.join('OvmfPkg', '.svn')):\r
+ return svn_based_version()\r
+ else:\r
+ return git_based_version()\r
\r
revision = get_revision()\r
\r
iasl_version = iasl_version.split(' version ')[1].strip()\r
\r
sb = StringIO.StringIO()\r
- print >> sb, 'edk2: ', 'r%d' % revision\r
+ print >> sb, 'edk2: ', revision\r
print >> sb, 'compiler: GCC', gcc_version_str, '(' + TOOLCHAIN + ')'\r
print >> sb, 'binutils:', ld_version\r
print >> sb, 'iasl: ', iasl_version\r
\r
def create_zip(arch):\r
global build_info\r
- filename = 'OVMF-%s-r%d.zip' % (arch, revision)\r
+ filename = 'OVMF-%s-%s.zip' % (arch, revision)\r
print 'Creating', filename, '...',\r
sys.stdout.flush()\r
if os.path.exists(filename):\r