Update Users Guide to clarify usage of site_scons and site_init.py.
authorgaryo <garyo@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Wed, 19 Nov 2008 01:29:38 +0000 (01:29 +0000)
committergaryo <garyo@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Wed, 19 Nov 2008 01:29:38 +0000 (01:29 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@3791 fdb21ef1-2011-0410-befe-b5e4ea1792b1

doc/user/README
doc/user/builders-writing.in
doc/user/builders-writing.xml

index bdccf51900b7aed189eb364179caee5ac7d0e289..2d05359b5aed641252336f4c7cab271e22d53f9e 100644 (file)
@@ -3,7 +3,7 @@
 When adding a new file, add it to main.xml and MANIFEST.
 
 To build the .xml files from the .in files:
-  scons -D . BUILDDOC=1
+  scons -D BUILDDOC=1 foo.xml
 To build the whole PDF doc from this dir, for testing:
   scons -D ../../build/doc/PDF/scons-user.pdf 
 
index b9539756a7ab19c6c5a20d0b09d37e265282797a..dc6e95b90746c1e5a948137d15e2eb5d9e880897 100644 (file)
@@ -955,17 +955,22 @@ This functionality could be invoked as in the following example:
     to include in &SConscript;s; just put that module in
     <filename>site_scons/my_utils.py</filename> or any valid Python module name of your
     choice.  For instance you can do something like this in
-    <filename>site_scons/my_utils.py</filename> to add a build_id method:
+    <filename>site_scons/my_utils.py</filename> to add build_id and MakeWorkDir functions:
   </para>
     
   <scons_example name="site2">
     <file name="site_scons/my_utils.py" printme=1>
+      from SCons.Script import *   # for Execute and Mkdir
       def build_id():
          """Return a build ID (stub version)"""
          return "100"
+      def MakeWorkDir(workdir):
+         """Create the specified dir immediately"""
+         Execute(Mkdir(workdir))
     </file>
     <file name="SConscript">
       import my_utils
+      MakeWorkDir('/tmp/work')
       print "build_id=" + my_utils.build_id()
     </file>
   </scons_example>
@@ -980,8 +985,27 @@ This functionality could be invoked as in the following example:
   <sconstruct>
       import my_utils
       print "build_id=" + my_utils.build_id()
+      my_utils.MakeWorkDir('/tmp/work')
   </sconstruct>
 
+  <para>
+    Note that although you can put this library in
+    <filename>site_scons/site_init.py</filename>,
+    it is no better there than <filename>site_scons/my_utils.py</filename>
+    since you still have to import that module into your &SConscript;.
+    Also note that in order to refer to objects in the SCons namespace
+    such as &Environment; or &Mkdir; or &Execute; in any file other
+    than a &SConstruct; or &SConscript; you always need to do
+  </para>
+  <sconstruct>
+      from SCons.Script import *
+  </sconstruct>
+
+  <para>
+    This is true in modules in <filename>site_scons</filename> such as
+    <filename>site_scons/site_init.py</filename> as well.
+  </para>
+
   <para>
 
     If you have a machine-wide site dir you'd like to use instead of
index c45af8a01ef9adfa00ae4596aefd2b1809c850d4..2c0f6974858f8ad4c2d63cc66efb7f8986158322 100644 (file)
@@ -828,13 +828,17 @@ This functionality could be invoked as in the following example:
     to include in &SConscript;s; just put that module in
     <filename>site_scons/my_utils.py</filename> or any valid Python module name of your
     choice.  For instance you can do something like this in
-    <filename>site_scons/my_utils.py</filename> to add a build_id method:
+    <filename>site_scons/my_utils.py</filename> to add build_id and MakeWorkDir functions:
   </para>
     
   <programlisting>
+      from SCons.Script import *   # for Execute and Mkdir
       def build_id():
          """Return a build ID (stub version)"""
          return "100"
+      def MakeWorkDir(workdir):
+         """Create the specified dir immediately"""
+         Execute(Mkdir(workdir))
   </programlisting>
 
   <para>
@@ -847,8 +851,27 @@ This functionality could be invoked as in the following example:
   <programlisting>
       import my_utils
       print "build_id=" + my_utils.build_id()
+      my_utils.MakeWorkDir('/tmp/work')
   </programlisting>
 
+  <para>
+    Note that although you can put this library in
+    <filename>site_scons/site_init.py</filename>,
+    it is no better there than <filename>site_scons/my_utils.py</filename>
+    since you still have to import that module into your &SConscript;.
+    Also note that in order to refer to objects in the SCons namespace
+    such as &Environment; or &Mkdir; or &Execute; in any file other
+    than a &SConstruct; or &SConscript; you always need to do
+  </para>
+  <programlisting>
+      from SCons.Script import *
+  </programlisting>
+
+  <para>
+    This is true in modules in <filename>site_scons</filename> such as
+    <filename>site_scons/site_init.py</filename> as well.
+  </para>
+
   <para>
 
     If you have a machine-wide site dir you'd like to use instead of