Merged revisions 2117-2120 via svnmerge from
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Wed, 11 Jul 2007 19:58:03 +0000 (19:58 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Wed, 11 Jul 2007 19:58:03 +0000 (19:58 +0000)
http://scons.tigris.org/svn/scons/branches/core

........
  r2119 | garyo | 2007-07-11 08:53:36 -0500 (Wed, 11 Jul 2007) | 1 line

  Fixed minor cut/paste doc error
........
  r2120 | stevenknight | 2007-07-11 12:42:50 -0500 (Wed, 11 Jul 2007) | 4 lines

  Simplify the {Add,Get,Set}Option() implementations, and initialize the
  OptionsParser variable with a do-nothing class, in case it's used
  by test scripts without normal SCons.Script.Main initialization.
........

git-svn-id: http://scons.tigris.org/svn/scons/trunk@2121 fdb21ef1-2011-0410-befe-b5e4ea1792b1

doc/user/command-line.in
doc/user/command-line.sgml
src/engine/SCons/Script/Main.py
src/engine/SCons/Script/SConscript.py
src/engine/SCons/Script/__init__.py

index b444d30f508536dc85579e8aff9b484459264eb4..b2cb8883c3a982fe70e58dabc2efc96a7d7fb783 100644 (file)
 
       <para>
 
-      Other values that equate to &true; include
+      Other values that equate to &false; include
       <literal>n</literal>,
       <literal>0</literal>,
       <literal>off</literal>
index 66de79cc8167a1b6b0f388c18849d1cbf5791112..1bc94d758d8a0ce9d8edeada6e4a77ff3de87217 100644 (file)
 
       <para>
 
-      Other values that equate to &true; include
+      Other values that equate to &false; include
       <literal>n</literal>,
       <literal>0</literal>,
       <literal>off</literal>
index 53e51296d93249c9e15e992890af592b8a564443..a3c0a514e02e8ae3b58a811da7850e971ee0cedb 100644 (file)
@@ -329,13 +329,39 @@ exit_status = 0 # exit status, assume success by default
 num_jobs = None
 delayed_warnings = []
 
-OptionsParser = None
+class FakeOptionParser:
+    """
+    A do-nothing option parser, used for the initial OptionsParser variable.
+
+    During normal SCons operation, the OptionsParser is created right
+    away by the main() function.  Certain tests scripts however, can
+    introspect on different Tool modules, the initialization of which
+    can try to add a new, local option to an otherwise uninitialized
+    OptionsParser object.  This allows that introspection to happen
+    without blowing up.
+
+    """
+    class FakeOptionValues:
+        def __getattr__(self, attr):
+            return None
+    values = FakeOptionValues()
+    def add_local_option(self, *args, **kw):
+        pass
+
+OptionsParser = FakeOptionParser()
 
 def AddOption(*args, **kw):
     if not kw.has_key('default'):
         kw['default'] = None
     result = apply(OptionsParser.add_local_option, args, kw)
     return result
+
+def GetOption(name):
+    return getattr(OptionsParser.values, name)
+
+def SetOption(name, value):
+    return OptionsParser.values.set_option(name, value)
+
 #
 class Stats:
     def __init__(self):
index 7326c0c82fb4cb3be92589353f8fd7570b8a89e5..a1856dab822b6932c13dcd81d2557e136e5199d6 100644 (file)
@@ -469,7 +469,7 @@ class SConsEnvironment(SCons.Environment.Base):
 
     def GetOption(self, name):
         name = self.subst(name)
-        return getattr(SCons.Script.Main.OptionsParser.values, name)
+        return SCons.Script.Main.GetOption(name)
 
     def Help(self, text):
         text = self.subst(text, raw=1)
@@ -525,7 +525,7 @@ class SConsEnvironment(SCons.Environment.Base):
 
     def SetOption(self, name, value):
         name = self.subst(name)
-        SCons.Script.Main.OptionsParser.values.set_option(name, value)
+        SCons.Script.Main.SetOption(name, value)
 
 #
 #
index 8f97c41809c178a86ec12e203c35e0b3cf0ef7c9..9288b859ae628c4c91e015253fde096c7902f8e0 100644 (file)
@@ -106,7 +106,10 @@ CleanTask               = Main.CleanTask
 QuestionTask            = Main.QuestionTask
 #PrintHelp               = Main.PrintHelp
 #SConscriptSettableOptions = Main.SConscriptSettableOptions
+
 AddOption               = Main.AddOption
+GetOption               = Main.GetOption
+SetOption               = Main.SetOption
 
 #keep_going_on_error     = Main.keep_going_on_error
 #print_dtree             = Main.print_dtree
@@ -271,12 +274,10 @@ GlobalDefaultEnvironmentFunctions = [
     'Exit',
     'Export',
     'GetLaunchDir',
-    'GetOption',
     'Help',
     'Import',
     #'SConscript', is handled separately, below.
     'SConscriptChdir',
-    'SetOption',
 
     # Methods from the Environment.Base class.
     'AddPostAction',