mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-28 06:49:43 +00:00
Scons: remove fast_start feature
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15343 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
f3016d70d9
commit
90cbd48fd3
@ -74,7 +74,7 @@ package_string = '%s %s' % (package_name, package_version)
|
||||
|
||||
# various cache/log files
|
||||
default_log_file = 'scons_lyx.log'
|
||||
env_cache_file = 'env.cache'
|
||||
opt_cache_file = 'opt.cache'
|
||||
|
||||
|
||||
#----------------------------------------------------------
|
||||
@ -153,7 +153,7 @@ opts.AddOptions(
|
||||
EnumOption('packaging', 'Packaging method to use.', default_packaging_method,
|
||||
allowed_values = ('windows', 'posix', 'macosx')),
|
||||
#
|
||||
BoolOption('fast_start', 'Whether or not use cached tests and keep current config.h', True),
|
||||
BoolOption('fast_start', 'This option is obsolete.', False),
|
||||
# No precompiled header support (too troublesome to make it work for msvc)
|
||||
# BoolOption('pch', 'Whether or not use pch', False),
|
||||
# enable assertion, (config.h has ENABLE_ASSERTIOS
|
||||
@ -236,23 +236,8 @@ all_options = [x.key for x in opts.options]
|
||||
true_strings = ('y', 'yes', 'true', 't', '1', 'on' , 'all' )
|
||||
false_strings = ('n', 'no', 'false', 'f', '0', 'off', 'none')
|
||||
|
||||
# whether or not use current config.h, and cached tests
|
||||
#
|
||||
# if fast_start=yes (default), load variables from env_cache_file
|
||||
if (not ARGUMENTS.has_key('fast_start') or \
|
||||
ARGUMENTS['fast_start'] in true_strings) \
|
||||
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()
|
||||
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
|
||||
env_cache = {}
|
||||
if ARGUMENTS.has_key('fast_start'):
|
||||
print 'fast_start option is obsolete'
|
||||
|
||||
# if load_option=yes (default), load saved comand line options
|
||||
#
|
||||
@ -260,26 +245,17 @@ else:
|
||||
# and tries to be clever in choosing options to load
|
||||
if (not ARGUMENTS.has_key('load_option') or \
|
||||
ARGUMENTS['load_option'] not in false_strings) \
|
||||
and os.path.isfile(env_cache_file):
|
||||
cache_file = open(env_cache_file)
|
||||
opt_cache = cPickle.load(cache_file)['arg_cache']
|
||||
and os.path.isfile(opt_cache_file):
|
||||
cache_file = open(opt_cache_file)
|
||||
opt_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 opt_cache.has_key('frontend') \
|
||||
and ARGUMENTS['frontend'] != opt_cache['frontend'] \
|
||||
and opt_cache.has_key('qt_dir'):
|
||||
opt_cache.pop('qt_dir')
|
||||
# some options will require full rebuild
|
||||
# these are in general things that will change config.h
|
||||
for arg in ['version_suffix', 'nls', 'boost', 'spell']:
|
||||
if ARGUMENTS.has_key(arg) and ((not opt_cache.has_key(arg)) or \
|
||||
ARGUMENTS[arg] != opt_cache[arg]):
|
||||
if fast_start:
|
||||
print " ** fast_start is disabled because of the change of option", arg
|
||||
print
|
||||
fast_start = False
|
||||
# and we do not cache some options (dest_dir is obsolete)
|
||||
for arg in ['fast_start', 'load_option', 'dest_dir']:
|
||||
for arg in ['load_option', 'dest_dir']:
|
||||
if opt_cache.has_key(arg):
|
||||
opt_cache.pop(arg)
|
||||
# remove obsolete cached keys (well, SConstruct is evolving. :-)
|
||||
@ -318,9 +294,10 @@ for arg in ARGUMENTS.keys():
|
||||
print ' ' + '\n '.join(textwrap.wrap(', '.join(all_options)))
|
||||
Exit(1)
|
||||
|
||||
# save arguments
|
||||
env_cache['arg_cache'] = ARGUMENTS
|
||||
|
||||
# save options used
|
||||
cache_file = open(opt_cache_file, 'w')
|
||||
cPickle.dump(ARGUMENTS, cache_file)
|
||||
cache_file.close()
|
||||
|
||||
#---------------------------------------------------------
|
||||
# Setting up environment
|
||||
@ -673,18 +650,13 @@ conf = Configure(env,
|
||||
)
|
||||
|
||||
# pkg-config? (if not, we use hard-coded options)
|
||||
if not fast_start:
|
||||
if conf.CheckPkgConfig('0.15.0'):
|
||||
env['HAS_PKG_CONFIG'] = True
|
||||
else:
|
||||
print 'pkg-config >= 0.1.50 is not found'
|
||||
env['HAS_PKG_CONFIG'] = False
|
||||
env_cache['HAS_PKG_CONFIG'] = env['HAS_PKG_CONFIG']
|
||||
else:
|
||||
env['HAS_PKG_CONFIG'] = env_cache['HAS_PKG_CONFIG']
|
||||
|
||||
# zlib? This is required. (fast_start assumes the existance of zlib)
|
||||
if not fast_start:
|
||||
# zlib? This is required.
|
||||
if (not use_vc and not conf.CheckLibWithHeader('z', 'zlib.h', 'C')) \
|
||||
or (use_vc and not conf.CheckLibWithHeader('zdll', 'zlib.h', 'C')):
|
||||
print 'Did not find zdll.lib or zlib.h, exiting!'
|
||||
@ -698,12 +670,9 @@ if not fast_start:
|
||||
else:
|
||||
print 'Did not find iconv or libiconv, exiting!'
|
||||
Exit(1)
|
||||
env_cache['ICONV_LIB'] = env['ICONV_LIB']
|
||||
else:
|
||||
env['ICONV_LIB'] = env_cache['ICONV_LIB']
|
||||
|
||||
|
||||
# qt libraries?
|
||||
if not fast_start:
|
||||
#
|
||||
# qt3 does not use pkg_config
|
||||
if frontend == 'qt3':
|
||||
@ -754,7 +723,6 @@ if use_vc:
|
||||
env['LINKCOM'] = [env['LINKCOM'], 'mt.exe /MANIFEST %s /outputresource:$TARGET;1' % manifest]
|
||||
|
||||
# check socket libs
|
||||
if not fast_start:
|
||||
socket_libs = []
|
||||
if conf.CheckLib('socket'):
|
||||
socket_libs.append('socket')
|
||||
@ -762,9 +730,6 @@ if not fast_start:
|
||||
# transport-level interface to networking services.
|
||||
if conf.CheckLib('nsl'):
|
||||
socket_libs.append('nsl')
|
||||
env_cache['SOCKET_LIBS'] = socket_libs
|
||||
else:
|
||||
socket_libs = env_cache['SOCKET_LIBS']
|
||||
|
||||
# check available boost libs (since lyx1.4 does not use iostream)
|
||||
boost_libs = []
|
||||
@ -772,7 +737,6 @@ for lib in ['signals', 'regex', 'filesystem', 'iostreams']:
|
||||
if os.path.isdir(os.path.join(top_src_dir, 'boost', 'libs', lib)):
|
||||
boost_libs.append(lib)
|
||||
|
||||
if not fast_start:
|
||||
# check boost libraries
|
||||
boost_opt = ARGUMENTS.get('boost', 'auto')
|
||||
# check for system boost
|
||||
@ -805,15 +769,7 @@ if not fast_start:
|
||||
else:
|
||||
included_boost = False
|
||||
(boost_libraries, boost_libpath, env['BOOST_INC_PATH']) = res
|
||||
env_cache['BOOST_LIBRARIES'] = boost_libraries
|
||||
env_cache['INCLUDED_BOOST'] = included_boost
|
||||
env_cache['BOOST_INC_PATH'] = env['BOOST_INC_PATH']
|
||||
env_cache['BOOST_LIBPATH'] = boost_libpath
|
||||
else:
|
||||
boost_libraries = env_cache['BOOST_LIBRARIES']
|
||||
included_boost = env_cache['INCLUDED_BOOST']
|
||||
env['BOOST_INC_PATH'] = env_cache['BOOST_INC_PATH']
|
||||
boost_libpath = env_cache['BOOST_LIBPATH']
|
||||
|
||||
|
||||
if boost_libpath is not None:
|
||||
env.AppendUnique(LIBPATH = [boost_libpath])
|
||||
@ -821,7 +777,6 @@ if boost_libpath is not None:
|
||||
|
||||
env['ENABLE_NLS'] = env['nls']
|
||||
|
||||
if not fast_start:
|
||||
if not env['ENABLE_NLS']:
|
||||
intl_libs = []
|
||||
included_gettext = False
|
||||
@ -831,7 +786,11 @@ if not fast_start:
|
||||
# check for system gettext
|
||||
succ = False
|
||||
if gettext_opt in ['auto', 'system']:
|
||||
if conf.CheckLib('intl'):
|
||||
if conf.CheckFunc('gettext'):
|
||||
included_gettext = False
|
||||
intl_libs = []
|
||||
succ = True
|
||||
elif conf.CheckLib('intl'):
|
||||
included_gettext = False
|
||||
intl_libs = ['intl']
|
||||
succ = True
|
||||
@ -846,30 +805,17 @@ if not fast_start:
|
||||
# we do not need to set LIBPATH now.
|
||||
included_gettext = True
|
||||
intl_libs = ['included_intl']
|
||||
env_cache['INCLUDED_GETTEXT'] = included_gettext
|
||||
env_cache['INTL_LIBS'] = intl_libs
|
||||
else:
|
||||
included_gettext = env_cache['INCLUDED_GETTEXT']
|
||||
intl_libs = env_cache['INTL_LIBS']
|
||||
|
||||
|
||||
#
|
||||
# check for msgfmt command
|
||||
if not fast_start:
|
||||
env['MSGFMT'] = conf.CheckCommand('msgfmt')
|
||||
env_cache['MSGFMT'] = env['MSGFMT']
|
||||
else:
|
||||
env['MSGFMT'] = env_cache['MSGFMT']
|
||||
|
||||
# cygwin packaging requires the binaries to be stripped
|
||||
if platform_name == 'cygwin':
|
||||
if not fast_start:
|
||||
env['STRIP'] = conf.CheckCommand('strip')
|
||||
env_cache['STRIP'] = env['STRIP']
|
||||
else:
|
||||
env['STRIP'] = env_cache['STRIP']
|
||||
|
||||
# check uic and moc commands for qt frontends
|
||||
if not fast_start:
|
||||
if frontend[:2] == 'qt' and (conf.CheckCommand('uic') == None \
|
||||
or conf.CheckCommand('moc') == None):
|
||||
print 'uic or moc command is not found for frontend', frontend
|
||||
@ -893,8 +839,6 @@ if platform_name == 'win32' and mode == 'debug' and use_vc:
|
||||
# check the existence of config.h
|
||||
config_h = os.path.join(env.Dir('$BUILDDIR/common').path, 'config.h')
|
||||
boost_config_h = os.path.join(env.Dir('$BUILDDIR/boost').path, 'config.h')
|
||||
if not fast_start or not os.path.isfile(boost_config_h) \
|
||||
or not os.path.isfile(config_h):
|
||||
#
|
||||
print "Creating %s..." % boost_config_h
|
||||
#
|
||||
@ -1209,7 +1153,6 @@ int mkstemp(char*);
|
||||
# USE_ASPELL etc does not go through result
|
||||
if result.has_key(key):
|
||||
env[key] = result[key]
|
||||
env_cache[key] = env[key]
|
||||
|
||||
#
|
||||
# if nls=yes and gettext=included, create intl/config.h
|
||||
@ -1323,26 +1266,7 @@ int mkstemp(char*);
|
||||
# USE_ASPELL etc does not go through result
|
||||
if result.has_key(key):
|
||||
env[key] = result[key]
|
||||
env_cache[key] = env[key]
|
||||
|
||||
else:
|
||||
#
|
||||
# this comes as a big surprise, without this line
|
||||
# (doing nothing obvious), adding fast_start=yes
|
||||
# to a build with fast_start=no will result in a rebuild
|
||||
# Note that the exact header file to check does not matter
|
||||
conf.CheckCHeader('io.h')
|
||||
# only a few variables need to be rescanned
|
||||
for key in ['USE_ASPELL', 'USE_PSPELL', 'USE_ISPELL', 'HAVE_FCNTL',\
|
||||
'HAVE_LIBGDI32', 'HAVE_LIBAIKSAURUS', 'AIKSAURUS_LIB']:
|
||||
env[key] = env_cache[key]
|
||||
#
|
||||
# nls related keys
|
||||
if env['nls'] and included_gettext:
|
||||
# only a few variables need to be rescanned
|
||||
for key in ['HAVE_ASPRINTF', 'HAVE_WPRINTF', 'HAVE_SNPRINTF', \
|
||||
'HAVE_POSIX_PRINTF', 'HAVE_LIBC']:
|
||||
env[key] = env_cache[key]
|
||||
|
||||
# this looks misplaced, but intl/libintl.h is needed by src/message.C
|
||||
if env['nls'] and included_gettext:
|
||||
@ -1507,7 +1431,6 @@ if frontend in ['qt3', 'qt4']:
|
||||
X11: %s
|
||||
''' % (qt_inc_path, qt_lib_path, env['X11'])
|
||||
|
||||
if not fast_start:
|
||||
print env['VERSION_INFO']
|
||||
|
||||
#
|
||||
@ -1534,10 +1457,6 @@ if logfile != '' or platform_name == 'win32':
|
||||
# -h will print out help info
|
||||
Help(opts.GenerateHelpText(env))
|
||||
|
||||
# save environment settings (for fast_start option)
|
||||
cache_file = open(env_cache_file, 'w')
|
||||
cPickle.dump(env_cache, cache_file)
|
||||
cache_file.close()
|
||||
|
||||
|
||||
#----------------------------------------------------------
|
||||
@ -2028,9 +1947,9 @@ if build_msvs_projects:
|
||||
the full path to start debug them.
|
||||
'''
|
||||
if rebuildTargetOnly:
|
||||
cmds = 'fast_start=yes rebuild='+target
|
||||
cmds = 'rebuild='+target
|
||||
else:
|
||||
cmds = 'fast_start=yes'
|
||||
cmds = ''
|
||||
if full_target is None:
|
||||
build_target = target
|
||||
else:
|
||||
|
Loading…
Reference in New Issue
Block a user