63 lines
2.2 KiB
Python
63 lines
2.2 KiB
Python
|
#!/usr/bin/python
|
||
|
# vim: encoding=utf-8
|
||
|
#expand *.in files
|
||
|
#this script is only intended for building from git, not for building from the released tarball, which already includes all necessary files
|
||
|
import os
|
||
|
import sys
|
||
|
import re
|
||
|
import string
|
||
|
import subprocess
|
||
|
import optparse
|
||
|
from pc_base import BasePCItems
|
||
|
from replace import replace_multi
|
||
|
|
||
|
def get_version_items(srcroot):
|
||
|
ver = {}
|
||
|
RE_VERSION_LINE_START = re.compile(r'^AC_INIT\(\[(.+)\], *\n')
|
||
|
RE_VERSION_LINE_BODY = re.compile(r'^ \[(.+)\], *\n')
|
||
|
RE_VERSION_LINE_END = re.compile(r'^ \[(.+)\]\) *\n')
|
||
|
|
||
|
# Read from the AC_INIT lines to get the version/name/URLs info
|
||
|
with open(os.path.join(srcroot, 'configure.ac'), 'r') as ac:
|
||
|
for i in ac:
|
||
|
mo_init = RE_VERSION_LINE_START.search(i)
|
||
|
mo_pkg_info = RE_VERSION_LINE_BODY.search(i)
|
||
|
mo_pkg_url = RE_VERSION_LINE_END.search(i)
|
||
|
if mo_init:
|
||
|
ver['@PACKAGE_NAME@'] = mo_init.group(1)
|
||
|
if mo_pkg_info:
|
||
|
if mo_pkg_info.group(1).startswith('http'):
|
||
|
ver['@PACKAGE_BUGREPORT@'] = mo_pkg_info.group(1)
|
||
|
elif mo_pkg_info.group(1)[0].isdigit():
|
||
|
ver['@PACKAGE_VERSION@'] = mo_pkg_info.group(1)
|
||
|
else:
|
||
|
ver['@PACKAGE_TARNAME@'] = mo_pkg_info.group(1)
|
||
|
if mo_pkg_url:
|
||
|
ver['@PACKAGE_URL@'] = mo_pkg_url.group(1)
|
||
|
|
||
|
ver['@HB_VERSION@'] = ver['@PACKAGE_VERSION@']
|
||
|
|
||
|
pkg_ver_parts = ver['@PACKAGE_VERSION@'].split('.')
|
||
|
ver['@HB_VERSION_MAJOR@'] = pkg_ver_parts[0]
|
||
|
ver['@HB_VERSION_MINOR@'] = pkg_ver_parts[1]
|
||
|
ver['@HB_VERSION_MICRO@'] = pkg_ver_parts[2]
|
||
|
return ver
|
||
|
|
||
|
def main(argv):
|
||
|
pc = BasePCItems()
|
||
|
srcroot = pc.top_srcdir
|
||
|
srcdir = pc.srcdir
|
||
|
ver = get_version_items(srcroot)
|
||
|
|
||
|
replace_multi(os.path.join(srcdir, 'config.h.win32.in'),
|
||
|
os.path.join(srcdir, 'config.h.win32'),
|
||
|
ver)
|
||
|
|
||
|
replace_multi(os.path.join(srcroot, 'src', 'hb-version.h.in'),
|
||
|
os.path.join(srcroot, 'src', 'hb-version.h'),
|
||
|
ver)
|
||
|
return 0
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
sys.exit(main(sys.argv))
|