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
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>
<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
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>
<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