- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 338
DeveloperGuide
        William Deegan edited this page Jan 21, 2025 
        ·
        32 revisions
      
    This is the SCons Developer Guide. Start here to learn how to contribute to SCons and understand how it works under the hood.
- Introduction
- Getting the source
- git clone https://github.com/SCons/scons.git
- Source tree organization
 
- Hacking on the source
- META: do you really need to?
- Writing builders, wrappers, and subclassing (don't need to change source)
- Using site_sconsfor extensions
 
- Running from the source tree
- DebuggingScons
 
- META: do you really need to?
- Contributing
- Mailing lists (hammering out an idea before jumping in)
- Documentation
- Writing and debugging tests
- git workflows, explains how to work with git to submit your patches
- SCons Build Requirements, which packages you need for a full build
- Packaging
 
- 
Architecture
- Installation (the way SCons is meant to be found)
- Nodes (Dir, File, Value, ...)
- Signatures
- Determining configuration
- Environments and what they encapsulate
- Tools
- Building blocks for scripting (Commands, Actions, Builders, Emitters, ...)
- Scanners
- Parsing the SConscripts
- Node management (building the DAG)
- 
TaskMaster
- Running the DAG
- Scanning for implicit dependencies
- Dealing with signatures
 
 
- Overview of Modules and Classes
- Improvement ideas
Other resources:
- The man page, especially the Extending SCons section.
- Be sure to check out the developer guidelines
- JavaSupport
- LatexSupport (and TeX)
- VisualizeDependencies - display of large source graphs (DOT format) with yEd
- WhySconsIsNotSlow - runtime and speedup analysis
This is a work in progress.
Items to add:
- More information on .sconsign file.