SourceWalkThrough - ajf58/scons GitHub Wiki

SCons Source Tree Walkthrough

Here's a quick introduction to the structure of the SCons repository.

When you first check out SCons, the main directories you will see are:

src the sources
doc the documentation (man pages, guides, etc)
test the test suite
www the old SCons website repository

The src directory is the one you probably care about. It is organized like this:

  • engine: the guts of SCons
    • SCons: the root of the SCons python module hierarchy
      • *.py: the python modules
      • *Tests.py: unit tests, discovered automatically; see TestingMethodology
      • Tool: Tool modules, e.g. cc.py, msvc.py, latex.py...
      • Scanner: Scanner modules for dependency scanning
      • Node: the Node object, the central filesystem abstraction for building the dependency graph
      • Script: Main.py in here has the main loop that parses SCons options and reads the SConstruct; it's what's called from the "scons" script
  • script: the "scons" wrapper script

Some key files in src/SCons:

  • Environment.py: SCons Environment class: the user way to communicate dependencies and construction information to the SCons engine
  • Node/FS.py: File() and Dir() nodes are defined here
⚠️ **GitHub.com Fallback** ⚠️