summaryrefslogtreecommitdiffstats
path: root/doc/user/misc.in
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2008-08-25 15:21:20 (GMT)
committerSteven Knight <knight@baldmt.com>2008-08-25 15:21:20 (GMT)
commiteb705ea31fd0a082f97b3ee7fd07f04271ea2641 (patch)
tree5cac3f95a6f039247bf7d98506c68fb61f61c4b1 /doc/user/misc.in
parent480cfd558e35fa019171e817bbee38fbdaec0b1c (diff)
downloadSCons-eb705ea31fd0a082f97b3ee7fd07f04271ea2641.zip
SCons-eb705ea31fd0a082f97b3ee7fd07f04271ea2641.tar.gz
SCons-eb705ea31fd0a082f97b3ee7fd07f04271ea2641.tar.bz2
Issue 1982: document GetLaunchDir() in the User's Guide.
Diffstat (limited to 'doc/user/misc.in')
-rw-r--r--doc/user/misc.in46
1 files changed, 46 insertions, 0 deletions
diff --git a/doc/user/misc.in b/doc/user/misc.in
index 21bb0bb..cb969e7 100644
--- a/doc/user/misc.in
+++ b/doc/user/misc.in
@@ -373,3 +373,49 @@
</screen>
</section>
+
+ <section>
+ <title>Finding the Invocation Directory: the &GetLaunchDir; Function</title>
+
+ <para>
+
+ If you need to find the directory from
+ which the user invoked the &scons; command,
+ you can use the &GetLaunchDir; function:
+
+ </para>
+
+ <sconstruct>
+ env = Environment(
+ LAUNCHDIR = GetLaunchDir(),
+ )
+ env.Command('directory_build_info',
+ '$LAUNCHDIR/build_info'
+ Copy('$TARGET', '$SOURCE'))
+ </sconstruct>
+
+ <para>
+
+ Because &SCons; is usually invoked from the top-level
+ directory in which the &SConstruct; file lives,
+ the Python <function>os.getcwd()</function>
+ is often equivalent.
+ However, the &SCons;
+ <literal>-u</literal>,
+ <literal>-U</literal>
+ and
+ <literal>-D</literal>
+ command-line options,
+ when invoked from a subdirectory,
+ will cause &SCons; to change to the directory
+ in which the &SConstruct; file is found.
+ When those options are used,
+ &GetLaunchDir; will still return the path to the
+ user's invoking subdirectory,
+ allowing the &SConscript; configuration
+ to still get at configuration (or other) files
+ from the originating directory.
+
+ </para>
+
+ </section>