diff options
author | Gary Oberbrunner <garyo@oberbrunner.com> | 2008-11-19 01:29:38 (GMT) |
---|---|---|
committer | Gary Oberbrunner <garyo@oberbrunner.com> | 2008-11-19 01:29:38 (GMT) |
commit | 86fe58746399d88d9965c954d3091794733a34c6 (patch) | |
tree | 3a9053b10ebef006c682e5df6db8add834be7995 /doc/user/builders-writing.xml | |
parent | c4b13e37c7d9abec69e9d4ef78b55b241c25b1d0 (diff) | |
download | SCons-86fe58746399d88d9965c954d3091794733a34c6.zip SCons-86fe58746399d88d9965c954d3091794733a34c6.tar.gz SCons-86fe58746399d88d9965c954d3091794733a34c6.tar.bz2 |
Update Users Guide to clarify usage of site_scons and site_init.py.
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 |