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

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_4_X@15157 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Bo Peng 2006-09-26 19:33:31 +00:00
parent 83bf839fcc
commit 44df3a0541
3 changed files with 70 additions and 4 deletions

View File

@ -53,12 +53,18 @@ else:
# some global settings
#
package_version = '1.4.3svn'
package_cygwin_version = '1.4.3svn-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_32'
devel_version = True
default_build_mode = 'debug'
if 'svn' in package_version:
devel_version = True
default_build_mode = 'debug'
else:
devel_version = False
default_build_mode = 'release'
package = 'lyx'
package_bugreport = 'lyx-devel@lists.lyx.org'
@ -2088,6 +2094,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

@ -2266,3 +2266,15 @@ lib_lyx2lyx_files = Split('''
profiling.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
@ -581,6 +599,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