-
-
Notifications
You must be signed in to change notification settings - Fork 330
DeveloperGuide
Michael Mera edited this page Nov 11, 2015
·
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
- Hacking on the source
- META: do you really need to?
- Writing builders, wrappers, and subclassing (don't need to change source)
- Using scons_dir for extensions
- Running from the source tree
- DebuggingScons
- META: do you really need to?
- Contributing
- Mailing lists (hammering out an idea before jumping in)
- Easy issues to fix from our Tigris bug tracker
- Documentation
- Writing and debugging tests
- Mercurial workflows, explains how to work with Mercurial to submit your patches
- Accepting pull requests, howto for the SCons admin
- 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
- Statistics (for debugging and performance measurement)
- 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. Let's start discussing what needs to go in this guide.
- Known topic with no place to live yet: .sconsign. The architecture section is organized more-or-less in time order and this topic doesn't fit that particularly well. [JGN 19 Jan 2007]
- I put in links for sections that I thought were pretty solid, but there are a number of areas where the topics are still flexible. Someone with more knowledge of the internals should clarify those aspects. [JGN 19 Jan 2007]