From: <sv...@ww...> - 2008-03-26 05:25:41
|
Author: mkrose Date: 2008-03-25 22:25:31 -0700 (Tue, 25 Mar 2008) New Revision: 2225 Modified: trunk/csp/tools/build/scons.py trunk/csp/tools/build/setup.py Log: Hack scons options hook to work with scons 0.97.0.r2680. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=2225 Modified: trunk/csp/tools/build/scons.py =================================================================== --- trunk/csp/tools/build/scons.py 2008-03-11 15:42:52 UTC (rev 2224) +++ trunk/csp/tools/build/scons.py 2008-03-26 05:25:31 UTC (rev 2225) @@ -58,16 +58,26 @@ def GetOptions(): try: - return SCons.Script.Main.options + return SCons.Script.Main.OptionsParser.values except: - return SCons.Script.options # version 0.96.1 + # TODO remove these older accessors; hopefully OptionsParser + # is stable going forward. + try: + return SCons.Script.Main.options + except: + return SCons.Script.options # version 0.96.1 +# Remove this method. The only option that we access through it is num_jobs, +# which is available via GetOptions in scons 0.97. def GetSettableOptions(): try: return SCons.Script.Main.ssoptions except: - return SCons.Script.ssoptions # version 0.96.1 + try: + return SCons.Script.ssoptions # version 0.96.1 + except: + return GetOptions() def GetCommandlineTargets(): Modified: trunk/csp/tools/build/setup.py =================================================================== --- trunk/csp/tools/build/setup.py 2008-03-11 15:42:52 UTC (rev 2224) +++ trunk/csp/tools/build/setup.py 2008-03-26 05:25:31 UTC (rev 2225) @@ -192,7 +192,13 @@ def GlobalSetup(env, distributed=1, short_messages=None, default_message=None, config=None, with_swig=1, timer=1): options = scons.GetOptions() - ssoptions = scons.GetSettableOptions() + # TODO remove ssoptions altogether; options.num_jobs should work in 0.97 and newer + # versions of scons. + try: + ssoptions = scons.GetSettableOptions() + num_jobs = ssoptions.get('num_jobs') + except AttributeError: + num_jobs = options.num_jobs if default_message is not None: util.SetDefaultMessage(env, default_message) @@ -204,7 +210,7 @@ buildlog.InitializeLogging(env) if short_messages: buildlog.SetShortMessages(env) - if distributed and ssoptions.get('num_jobs') > 1: + if distributed and num_jobs > 1: scons.SetDistributed(env) util.AddPhonyTarget(env, 'config') SConsEnvironment.CopyEnvironment = util.CopyEnvironment |