27.6. Finding the Invocation Directory: the GetLaunchDir Function

If you need to find the directory from which the user invoked the scons command, you can use the GetLaunchDir function:

env = Environment(
    LAUNCHDIR = GetLaunchDir(),
)
env.Command('directory_build_info',
            '$LAUNCHDIR/build_info'
            Copy('$TARGET', '$SOURCE'))
    

Because SCons is usually invoked from the top-level directory in which the SConstruct file lives, the Python os.getcwd() is often equivalent. However, the SCons -u, -U and -D 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.