SCons User Guide 0.93 | ||
---|---|---|
<<< Previous | Hierarchical Builds | Next >>> |
If you need to use a file from another directory, it's sometimes more convenient to specify the path to a file in another directory from the top-level SConstruct directory, even when you're using that file in a subsidiary SConscript file in a subdirectory. You can tell SCons to interpret a path name as relative to the top-level SConstruct directory, not the local directory of the SConscript file, by appending a # (hash mark) to the beginning of the path name:
env = Environment() env.Program('prog', ['main.c', '#lib/foo1.c', 'foo2.c']) |
In this example, the lib directory is directly underneath the top-level SConstruct directory. If the above SConscript file is in a subdirectory named src/prog, the output would look like:
% scons -Q
cc -c -o lib/foo1.o lib/foo1.c
cc -c -o src/prog/foo2.o src/prog/foo2.c
cc -c -o src/prog/main.o src/prog/main.c
cc -o src/prog/prog src/prog/main.o lib/foo1.o src/prog/foo2.o
(Notice that the lib/foo1.o object file is built in the same directory as its source file. See section XXX, below, for information about how to build the object file in a different subdirectory.)
<<< Previous | Home | Next >>> |
Path Names Are Relative to the SConscript Directory | Up | Absolute Path Names |