From 9d229c3f242ed1e54b7f44d0755bd3e13fd6031f Mon Sep 17 00:00:00 2001 From: Bo Peng Date: Sun, 11 Jun 2006 04:48:22 +0000 Subject: [PATCH] Scons: fix typos and minor bugs git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14070 a592a061-630c-0410-9148-cb99ea01b6c8 --- development/scons/SConscript | 10 +++++++--- development/scons/SConstruct | 25 +++++++++++++++---------- development/scons/scons_utils.py | 4 +++- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/development/scons/SConscript b/development/scons/SConscript index d08bd82bf9..a80cb56ee2 100644 --- a/development/scons/SConscript +++ b/development/scons/SConscript @@ -14,12 +14,16 @@ from scons_utils import globSource Import('env') +def libExists(libname): + ''' Check whether or not lib $LOCALLIBNAME/libname already exists''' + return os.path.isfile(File(env.subst('$LOCALLIBPATH/${LIBPREFIX}%s$LIBSUFFIX'%libname)).abspath) + targets = env['BUILD_TARGETS'] # msvc need to pass full target name, so I have to look for path/lyx etc build_lyx = targets == [] or True in ['lyx' in x for x in targets] \ or 'install' in targets or 'all' in targets -build_boost = env['INCLUDED_BOOST'] or 'boost' in targets -build_intl = env['INCLUDED_GETTEXT'] or 'intl' in targets +build_boost = (env['INCLUDED_BOOST'] and not libExists('boost_regex')) or 'boost' in targets +build_intl = (env['INCLUDED_GETTEXT'] and not libExists('included_intl')) or 'intl' in targets build_support = build_lyx or True in [x in targets for x in ['support', 'client', 'tex2lyx']] build_mathed = build_lyx or 'mathed' in targets build_insets = build_lyx or 'insets' in targets @@ -45,7 +49,7 @@ if rebuild_targets: if name in rebuild_targets: return True # else if not rebuild, and if the library already exists - elif os.path.isfile(File(env.subst('$LOCALLIBPATH/${LIBPREFIX}%s$LIBSUFFIX'%libname)).abspath): + elif libExists(libname): return False # do not change the original value else: diff --git a/development/scons/SConstruct b/development/scons/SConstruct index 9a1bd5b60d..f9781e3ed3 100644 --- a/development/scons/SConstruct +++ b/development/scons/SConstruct @@ -286,8 +286,8 @@ opts.AddOptions( PathOption('exec_prefix', 'install architecture-independent executable files in PREFIX', None), # log file ('logfile', 'save commands (not outputs) to logfile', default_log_file), - # Path to aikasurus - PathOption('aikasurus_path', 'Path to aikasurus library', None), + # Path to aiksaurus + PathOption('aiksaurus_path', 'Path to aiksaurus library', None), # environment variable can be set as options. (DO NOT set defaults) ('CC', '$CC', None), ('LINK', '$LINK', None), @@ -523,8 +523,8 @@ if env.has_key('extra_bin_path') and env['extra_bin_path']: # maybe only one of them is needed os.environ['PATH'] += os.pathsep + env['extra_bin_path'] env['ENV']['PATH'] += os.pathsep + env['extra_bin_path'] -if env.has_key('aikasurus_path') and env['aikasurus_path']: - env.AppendUnique(LIBPATH = [env['aikasurus_path']]) +if env.has_key('aiksaurus_path') and env['aiksaurus_path']: + env.AppendUnique(LIBPATH = [env['aiksaurus_path']]) # under windows, scons is confused by .C/.c and uses gcc instead of @@ -654,12 +654,13 @@ if not fast_start: boost_opt = ARGUMENTS.get('boost', default_boost_opt) # check for system boost succ = False + boost_libpath = None if boost_opt in ['auto', 'system']: - pathes = env['LIBPATH'] + ['/usr/lib', '/usr/local/lib'] - sig = conf.CheckBoostLibraries('boost_signals', pathes) - reg = conf.CheckBoostLibraries('boost_regex', pathes) - fil = conf.CheckBoostLibraries('boost_filesystem', pathes) - ios = conf.CheckBoostLibraries('boost_iostreams', pathes) + paths = env['LIBPATH'] + ['/usr/lib', '/usr/local/lib'] + sig = conf.CheckBoostLibraries('boost_signals', paths) + reg = conf.CheckBoostLibraries('boost_regex', paths) + fil = conf.CheckBoostLibraries('boost_filesystem', paths) + ios = conf.CheckBoostLibraries('boost_iostreams', paths) # if any of them is not found if ('' in [sig[0], reg[0], fil[0], ios[0]]): if boost_opt == 'system': @@ -670,6 +671,7 @@ if not fast_start: else: env['BOOST_LIBRARIES'] = [sig[1], reg[1], fil[1], ios[1]] # assume all boost libraries are in the same path... + boost_libpath = sig[0] env.AppendUnique(LIBPATH = [sig[0]]) env['INCLUDED_BOOST'] = False succ = True @@ -681,8 +683,11 @@ if not fast_start: env['INCLUDED_BOOST'] = True env_cache['BOOST_LIBRARIES'] = env['BOOST_LIBRARIES'] env_cache['INCLUDED_BOOST'] = env['INCLUDED_BOOST'] + env_cache['BOOST_LIBPATH'] = boost_libpath else: env['BOOST_LIBRARIES'] = env_cache['BOOST_LIBRARIES'] + if env_cache['BOOST_LIBPATH'] is not None: + env.AppendUnique(LIBPATH = [env_cache['BOOST_LIBPATH']]) env['INCLUDED_BOOST'] = env_cache['INCLUDED_BOOST'] @@ -1288,7 +1293,7 @@ env['VERSION_INFO'] = '''Configuration Build info: Builing directory: %s Local library directory: %s - Libraries pathes: %s + Libraries paths: %s Boost libraries: %s Frontend libraries: %s System libraries: %s diff --git a/development/scons/scons_utils.py b/development/scons/scons_utils.py index b2917f07ac..0b344b3bca 100644 --- a/development/scons/scons_utils.py +++ b/development/scons/scons_utils.py @@ -70,12 +70,14 @@ def env_subst(target, source, env): #st = os.stat(str(source[0])) #os.chmod(str(target[0]), stat.S_IMODE(st[stat.ST_MODE]) | stat.S_IWRITE) + # # glob filenames # def globSource(dir, pattern, build_dir=None, exclude=[], include=[]): ''' glob files, in dir and use build_dir as returned path name ''' - files = filter(lambda x: x not in exclude, glob.glob1(dir, pattern)) + include + # exclude 'exclude+include' to avoid duplicate items in files + files = filter(lambda x: x not in exclude + include, glob.glob1(dir, pattern)) + include if build_dir is None: return files else: -- 2.39.2