<!ENTITY Flatten "<function>Flatten</function>">
<!ENTITY GenerateHelpText "<function>GenerateHelpText</function>">
<!ENTITY GetBuildFailures "<function>GetBuildFailures</function>">
+<!ENTITY GetLaunchDir "<function>GetLaunchDir</function>">
<!ENTITY GetOption "<function>GetOption</function>">
<!ENTITY Glob "<function>Glob</function>">
<!ENTITY Help "<function>Help</function>">
</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>
</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>
+
+ <programlisting>
+ env = Environment(
+ LAUNCHDIR = GetLaunchDir(),
+ )
+ env.Command('directory_build_info',
+ '$LAUNCHDIR/build_info'
+ Copy('$TARGET', '$SOURCE'))
+ </programlisting>
+
+ <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>
- Document the ParseDepends() function in the User's Guide.
+ From Steven Knight:
+
+ - Document the GetLaunchDir() function in the User's Guide.
+
From Greg Noel:
- Handle yacc/bison on newer Mac OS X versions creating file.hpp,