-
-
Notifications
You must be signed in to change notification settings - Fork 319
DeveloperGuide
Mats Wichmann edited this page Jan 2, 2024
·
28 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_scons
for 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
- SconsBuildRequirements, 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.