summaryrefslogtreecommitdiffstats
path: root/doc/user/builders-writing.xml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/user/builders-writing.xml')
-rw-r--r--doc/user/builders-writing.xml25
1 files changed, 24 insertions, 1 deletions
diff --git a/doc/user/builders-writing.xml b/doc/user/builders-writing.xml
index c45af8a..2c0f697 100644
--- a/doc/user/builders-writing.xml
+++ b/doc/user/builders-writing.xml
@@ -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,9 +851,28 @@ 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
<filename>./site_scons</filename>, use the