mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 05:16:21 +00:00
Scons: dest_dir option, cache command line option, fix a intl bug
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13914 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
f62b8f095d
commit
90933ac07a
@ -1235,26 +1235,17 @@ if 'po' in targets or 'install' in targets or 'all' in targets:
|
||||
|
||||
if 'install' in targets:
|
||||
# create the directory if needed
|
||||
if not os.path.isdir(env['PREFIX']):
|
||||
if not os.path.isdir(env['DEST_DIR']):
|
||||
try:
|
||||
os.makedirs(env['PREFIX'])
|
||||
os.makedirs(env['DEST_DIR'])
|
||||
except:
|
||||
pass
|
||||
if not os.path.isdir(env['PREFIX']):
|
||||
print 'Can not create directory', env['PREFIX']
|
||||
if not os.path.isdir(env['DEST_DIR']):
|
||||
print 'Can not create directory', env['DEST_DIR']
|
||||
Exit(3)
|
||||
#
|
||||
import glob
|
||||
#
|
||||
# windows: $PREFIX/Resources
|
||||
# others: $PREDIX/share/lyx
|
||||
share_dir = env['SHARE_DIR']
|
||||
# windows: $PREFIX/Resouces/man/man1
|
||||
# others: $PREFIX/man/man1
|
||||
man_dir = env['MAN_DIR']
|
||||
# windows: $PREFIX/Resources/locale
|
||||
# others: $PREFIX/share/locale
|
||||
locale_dir = env['LOCALE_DIR']
|
||||
# do not install these files
|
||||
exclude_list = ['Makefile.am', 'Makefile.in', 'Makefile',
|
||||
'lyx2lyx_version.py', 'lyx2lyx_version.py.in']
|
||||
@ -1282,52 +1273,52 @@ if 'install' in targets:
|
||||
#
|
||||
# install lyx
|
||||
target_name = os.path.split(str(lyx[0]))[1].replace('lyx', 'lyx%s' % program_suffix)
|
||||
target = os.path.join(env['BIN_DIR'], target_name)
|
||||
target = os.path.join(env['BIN_DEST_DIR'], target_name)
|
||||
env.InstallAs(target, lyx)
|
||||
Alias('install', target)
|
||||
# install lyx as lyx-qt3
|
||||
target_name = os.path.split(str(lyx[0]))[1].replace('lyx', 'lyx-%s%s' % (frontend, program_suffix))
|
||||
target = os.path.join(env['BIN_DIR'], target_name)
|
||||
target = os.path.join(env['BIN_DEST_DIR'], target_name)
|
||||
env.InstallAs(target, lyx)
|
||||
Alias('install', target)
|
||||
#
|
||||
# install tex2lyx
|
||||
target_name = os.path.split(str(tex2lyx[0]))[1].replace('tex2lyx', 'tex2lyx%s' % program_suffix)
|
||||
target = os.path.join(env['BIN_DIR'], target_name)
|
||||
target = os.path.join(env['BIN_DEST_DIR'], target_name)
|
||||
env.InstallAs(target, tex2lyx)
|
||||
Alias('install', target)
|
||||
#
|
||||
# install lyxclient, may not exist
|
||||
if client != None:
|
||||
target_name = os.path.split(str(client[0]))[1].replace('client', 'client%s' % program_suffix)
|
||||
target = os.path.join(env['BIN_DIR'], target_name)
|
||||
target = os.path.join(env['BIN_DEST_DIR'], target_name)
|
||||
env.InstallAs(target, client)
|
||||
Alias('install', target)
|
||||
#
|
||||
# share/lyx
|
||||
dirs = install(env['SHARE_DIR'],
|
||||
dirs = install(env['SHARE_DEST_DIR'],
|
||||
[env.subst('$TOP_SRC_DIR/lib/') + file for file in ['configure.py', 'encodings',
|
||||
'chkconfig.ltx', 'CREDITS', 'external_templates', 'symbols', 'languages',
|
||||
'lyxrc.example', 'syntax.default', 'bind', 'images', 'layouts', 'scripts',
|
||||
'templates', 'examples', 'kbd', 'lyx2lyx', 'tex', 'clipart', 'doc', 'ui']]
|
||||
)
|
||||
env.substFile('$SHARE_DIR/lyx2lyx/lyx2lyx_version.py',
|
||||
env.substFile('$SHARE_DEST_DIR/lyx2lyx/lyx2lyx_version.py',
|
||||
'$TOP_SRC_DIR/lib/lyx2lyx/lyx2lyx_version.py.in')
|
||||
Alias('install', dirs)
|
||||
# man
|
||||
env.InstallAs(os.path.join(env['MAN_DIR'], 'lyx.1'),
|
||||
env.InstallAs(os.path.join(env['MAN_DEST_DIR'], 'lyx.1'),
|
||||
env.subst('$TOP_SRC_DIR/lyx.man'))
|
||||
env.InstallAs(os.path.join(env['MAN_DIR'], 'tex2lyx.1'),
|
||||
env.InstallAs(os.path.join(env['MAN_DEST_DIR'], 'tex2lyx.1'),
|
||||
env.subst('$TOP_SRC_DIR/src/tex2lyx/tex2lyx.man'))
|
||||
env.InstallAs(os.path.join(env['MAN_DIR'], 'lyxclient.1'),
|
||||
env.InstallAs(os.path.join(env['MAN_DEST_DIR'], 'lyxclient.1'),
|
||||
env.subst('$TOP_SRC_DIR/src/client/lyxclient.man'))
|
||||
Alias('install', [os.path.join(env['MAN_DIR'], x) for
|
||||
Alias('install', [os.path.join(env['MAN_DEST_DIR'], x) for
|
||||
x in ['lyx.1', 'tex2lyx.1', 'lyxclient.1']])
|
||||
# locale files?
|
||||
# ru.gmo ==> ru/LC_MESSAGES/lyxSUFFIX.mo
|
||||
for gmo in gmo_files:
|
||||
lan = os.path.split(str(gmo))[1].split('.')[0]
|
||||
dest_file = os.path.join(env['LOCALE_DIR'], lan, 'LC_MESSAGES', 'lyx' + env['PROGRAM_SUFFIX'] + '.mo')
|
||||
dest_file = os.path.join(env['LOCALE_DEST_DIR'], lan, 'LC_MESSAGES', 'lyx' + env['PROGRAM_SUFFIX'] + '.mo')
|
||||
env.InstallAs(dest_file, gmo)
|
||||
Alias('install', dest_file)
|
||||
|
||||
|
@ -274,6 +274,8 @@ opts.AddOptions(
|
||||
PathOption('extra_lib_path1', 'Extra library path', None),
|
||||
# can be set to a non-existing directory
|
||||
('prefix', 'install architecture-independent files in PREFIX', None),
|
||||
# will install to dest_dir if defined. Otherwise, prefix will be used.
|
||||
('dest_dir', 'install to dest_dir', None),
|
||||
# version suffix
|
||||
('version_suffix', 'install lyx as lyx-suffix', ''),
|
||||
#
|
||||
@ -293,6 +295,38 @@ opts.AddOptions(
|
||||
('LDFLAGS', '$LDFLAGS', None),
|
||||
)
|
||||
|
||||
# whether or not use current config.h, and cached tests
|
||||
if (not ARGUMENTS.has_key('fast_start') or \
|
||||
ARGUMENTS['fast_start'] in ['y', 'yes', 't', 'true', '1', 'all']) \
|
||||
and os.path.isfile(env_cache_file):
|
||||
fast_start = True
|
||||
cache_file = open(env_cache_file)
|
||||
env_cache = cPickle.load(cache_file)
|
||||
cache_file.close()
|
||||
# import cached options, but we should ignore qt_dir when frontend changes
|
||||
if ARGUMENTS.has_key('frontend') and env_cache['arg_cache'].has_key('frontend') \
|
||||
and ARGUMENTS['frontend'] != env_cache['arg_cache']['frontend'] \
|
||||
and env_cache['arg_cache'].has_key('qt_dir'):
|
||||
env_cache['arg_cache'].pop('qt_dir')
|
||||
# and we do not cache fast_start
|
||||
if env_cache['arg_cache'].has_key('fast_start'):
|
||||
env_cache['arg_cache'].pop('fast_start')
|
||||
print '------------ fast_start mode --------------------'
|
||||
print ' Use cached test results and current config.h'
|
||||
print ' use fast_start=no to override'
|
||||
print
|
||||
for key in env_cache['arg_cache'].keys():
|
||||
if not ARGUMENTS.has_key(key):
|
||||
ARGUMENTS[key] = env_cache['arg_cache'][key]
|
||||
print "Restoring cached option %s=%s" % (key, ARGUMENTS[key])
|
||||
print '-------------------------------------------------'
|
||||
else:
|
||||
fast_start = False
|
||||
env_cache = {}
|
||||
|
||||
# save arguments
|
||||
env_cache['arg_cache'] = ARGUMENTS
|
||||
|
||||
|
||||
#---------------------------------------------------------
|
||||
# Setting up environment
|
||||
@ -308,21 +342,6 @@ env['frontend'] = frontend
|
||||
#
|
||||
use_X11 = env.get('X11', default_with_x)
|
||||
|
||||
# whether or not use current config.h, and cached tests
|
||||
if env['fast_start'] and os.path.isfile(env_cache_file):
|
||||
fast_start = True
|
||||
SetOption('implicit_cache', 1)
|
||||
cache_file = open(env_cache_file)
|
||||
env_cache = cPickle.load(cache_file)
|
||||
cache_file.close()
|
||||
print '------------ fast_start mode --------------------'
|
||||
print ' Use cached test results and current config.h'
|
||||
print ' use fast_start=no to override'
|
||||
print '-------------------------------------------------'
|
||||
else:
|
||||
fast_start = False
|
||||
SetOption('implicit_cache', 0)
|
||||
env_cache = {}
|
||||
|
||||
# set individual variables since I do not really like ENV = os.environ
|
||||
env['ENV']['PATH'] = os.environ.get('PATH')
|
||||
@ -331,10 +350,6 @@ env['TOP_SRC_DIR'] = TOP_SRC_DIR
|
||||
env['SCONS_DIR'] = SCONS_DIR
|
||||
# install to default_prefix by default
|
||||
env['PREFIX'] = env.get('prefix', default_prefix)
|
||||
if env.has_key('exec_prefix'):
|
||||
env['BIN_DIR'] = env['exec_prefix']
|
||||
else:
|
||||
env['BIN_DIR'] = os.path.join(env['PREFIX'], 'bin')
|
||||
# program suffix
|
||||
if env.has_key('version_suffix'):
|
||||
env['PROGRAM_SUFFIX'] = env['version_suffix']
|
||||
@ -342,8 +357,17 @@ else:
|
||||
env['PROGRAM_SUFFIX'] = ''
|
||||
env['ADD_SUFFIX_TO_EXECUTABLES'] = add_suffix_to_executables
|
||||
env['SHARE_DIR'] = os.path.join(env['PREFIX'], share_dir + env['PROGRAM_SUFFIX'])
|
||||
env['MAN_DIR'] = os.path.join(env['PREFIX'], man_dir)
|
||||
env['LOCALE_DIR'] = os.path.join(env['PREFIX'], locale_dir)
|
||||
#
|
||||
# if dest_dir is different from prefix.
|
||||
env['DEST_DIR'] = env.get('dest_dir', env['PREFIX'])
|
||||
if env.has_key('exec_prefix'):
|
||||
env['BIN_DEST_DIR'] = env['exec_prefix']
|
||||
else:
|
||||
env['BIN_DEST_DIR'] = os.path.join(env['DEST_DIR'], 'bin')
|
||||
env['SHARE_DEST_DIR'] = os.path.join(env['DEST_DIR'], share_dir + env['PROGRAM_SUFFIX'])
|
||||
env['MAN_DEST_DIR'] = os.path.join(env['DEST_DIR'], man_dir)
|
||||
env['LOCALE_DEST_DIR'] = os.path.join(env['DEST_DIR'], locale_dir)
|
||||
|
||||
#
|
||||
# this is a bit out of place (after auto-configration) but
|
||||
@ -656,6 +680,8 @@ if not fast_start:
|
||||
# HAVE_SYS_UTIME_H
|
||||
# HAVE_UNISTD_H
|
||||
# HAVE_UTIME_H
|
||||
# HAVE_STRING_H
|
||||
# HAVE_STRINGS_H
|
||||
# HAVE_ISTREAM
|
||||
# HAVE_OSTREAM
|
||||
# HAVE_IOS
|
||||
@ -676,9 +702,11 @@ if not fast_start:
|
||||
('unistd.h', 'HAVE_UNISTD_H', 'c'),
|
||||
('inttypes.h', 'HAVE_INTTYPES_H', 'c'),
|
||||
('utime.h', 'HAVE_UTIME_H', 'c'),
|
||||
('string.h', 'HAVE_STRING_H', 'c'),
|
||||
('strings.h', 'HAVE_STRINGS_H', 'c'),
|
||||
('istream', 'HAVE_ISTREAM', 'cxx'),
|
||||
('ostream', 'HAVE_OSTREAM', 'cxx'),
|
||||
('ios', 'HAVE_IOS', 'cxx')
|
||||
('ios', 'HAVE_IOS', 'cxx'),
|
||||
]
|
||||
|
||||
for header in headers:
|
||||
@ -707,6 +735,10 @@ if not fast_start:
|
||||
# HAVE_STRERROR
|
||||
# HAVE_STD_COUNT
|
||||
# HAVE_GETCWD
|
||||
# HAVE_STRCPY
|
||||
# HAVE_STRCASECMP
|
||||
# HAVE_STRDUP
|
||||
# HAVE_STRTOUL
|
||||
|
||||
# Check functions
|
||||
functions = [
|
||||
@ -735,6 +767,10 @@ int count()
|
||||
}
|
||||
'''),
|
||||
('getcwd', 'HAVE_GETCWD', None),
|
||||
('stpcpy', 'HAVE_STPCPY', None),
|
||||
('strcasecmp', 'HAVE_STRCASECMP', None),
|
||||
('strdup', 'HAVE_STRDUP', None),
|
||||
('strtoul', 'HAVE_STRTOUL', None)
|
||||
]
|
||||
|
||||
# HAVE_ASPRINTF
|
||||
@ -1062,7 +1098,7 @@ Frontend:
|
||||
str(env['LIBPATH']), str(env['BOOST_LIBRARIES']),
|
||||
str(env['EXTRA_LIBS']), str(env['SYSTEM_LIBS']), str(env['CPPPATH']),
|
||||
env['frontend'], packaging_method,
|
||||
env['PREFIX'], env['BIN_DIR'], env['SHARE_DIR'])
|
||||
env['PREFIX'], env['BIN_DEST_DIR'], env['SHARE_DIR'])
|
||||
|
||||
if env['frontend'] in ['qt3', 'qt4']:
|
||||
env['VERSION_INFO'] += ''' include dir: %s
|
||||
|
Loading…
Reference in New Issue
Block a user