Scons: get version info from configure.ac, add fonts and postinstall script for cygwin

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15158 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Bo Peng 2006-09-26 19:37:09 +00:00
parent a9ddcfc77c
commit a8354d3db7
3 changed files with 64 additions and 2 deletions

View File

@ -53,8 +53,10 @@ else:
# some global settings
#
package_version = '1.5.0svn'
package_cygwin_version = '1.5.0svn-1'
# get version number from configure.ac so that JMarc does
# not have to change SConstruct during lyx release
package_version = utils.getVerFromConfigure(top_src_dir)
package_cygwin_version = '%s-1' % package_version
boost_version = '1_33_1'
devel_version = True
@ -2252,6 +2254,15 @@ if 'install' in targets:
env.Install(Cygwin_Doc, [os.path.join(env.subst('$TOP_SRCDIR'), x) for x in \
['INSTALL', 'README', 'README.Cygwin', 'RELEASE-NOTES', 'COPYING', 'ANNOUNCE']])
Alias('install', Cygwin_Doc)
# cygwin fonts also need to be installed
env.Install(os.path.join(share_dest_dir, 'font'),
[env.subst('$TOP_SRC_DIR/development/Win32/packaging/bakoma/%s' % file) \
for file in win32_bakoma_fonts])
# we also need a post installation script
tmp_script = utils.installCygwinPostinstallScript('/tmp')
postinstall_script = os.path.join(dest_dir, 'etc', 'postinstall', 'lyx.sh')
env.Install(postinstall_script, tmp_script)
Alias('install', postinstall_script)
# lyx1.4.x does not have lyx2lyx_version.py.in
if os.path.isfile(env.subst('$TOP_SRCDIR/lib/lyx2lyx/lyx2lyx_version.py.in')):

View File

@ -2658,3 +2658,15 @@ lib_lyx2lyx_files = Split('''
test_parser_tools.py
''')
win32_bakoma_fonts = Split('''
Readme.txt
Licence.txt
cmex10.ttf
cmr10.ttf
eufm10.ttf
msbm10.ttf
cmmi10.ttf
cmsy10.ttf
msam10.ttf
wasy10.ttf
''')

View File

@ -16,6 +16,24 @@ import os, sys, re, shutil, glob
from SCons.Util import WhereIs
def getVerFromConfigure(path):
" get lyx version from the AC_INIT line of configure.ac "
try:
config = open(os.path.join(path, 'configure.ac'))
except:
print "Can not open configure.ac. "
return 'x.x.x'
# find a line like follows
# AC_INIT(LyX,1.4.4svn,[lyx-devel@lists.lyx.org],[lyx])
pat = re.compile('AC_INIT\([^,]+,([^,]+),')
for line in config.readlines():
if pat.match(line):
(version,) = pat.match(line).groups()
return version.strip()
return 'x.x.x'
def writeToFile(filename, lines, append = False):
" utility function: write or append lines to filename "
# create directory if needed
@ -601,6 +619,27 @@ SECTIONS
return(ld_script)
def installCygwinPostinstallScript(path):
''' Install lyx.sh '''
postinstall_script = os.path.join(path, 'lyx.sh')
script = open(postinstall_script, 'w')
script.write('''#!/bin/sh
# Add /usr/share/lyx/fonts to /etc/fonts/local.conf
# if it is not already there.
if [ -f /etc/fonts/local.conf ]; then
grep -q /usr/share/lyx/fonts /etc/fonts/local.conf
if [ $? -ne 0 ]; then
sed 's/^<\/fontconfig>/<dir>\/usr\/share\/lyx\/fonts<\/dir>\n<\/fontconfig>/' /etc/fonts/local.conf > /etc/fonts/local.conf.tmp
mv -f /etc/fonts/local.conf.tmp /etc/fonts/local.conf
fc-cache /usr/share/lyx/fonts
fi
fi
''')
script.close()
return(postinstall_script)
try:
# these will be used under win32
import win32file