15.3. Telling SCons to Not Duplicate Source Files in the Variant Directory Tree
Prev | Chapter 15. Separating Source and Build Trees: Variant Directories | Next

## 15.3. Telling SCons to Not Duplicate Source Files in the Variant Directory Tree

In most cases and with most tool sets, SCons can use sources directly from the source directory without duplicating them into the variant directory before building, and everything will work just fine. You can disable the default SCons duplication behavior by specifying `duplicate=False` when you call the `SConscript` function:

    SConscript('src/SConscript', variant_dir='build', duplicate=False)

When this flag is specified, the results of a build look more like the mental model people may have from other build systems - that is, the output files end up in the variant directory while the source files do not.

    % ls src
    SConscript
    hello.c
    % scons -Q
    cc -c src/hello.c -o build/hello.o
    cc -o build/hello build/hello.o
    % ls build
    hello
    hello.o

If disabling duplication causes any problems, just return to the more cautious approach by letting SCons go back to duplicating files.

Prev | Up | Next
15.2. Why SCons Duplicates Source Files in a Variant Directory Tree | Home | 15.4. The `VariantDir` Function