diff options
Diffstat (limited to 'doc/user/builders-writing.xml')
-rw-r--r-- | doc/user/builders-writing.xml | 25 |
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 |