Original Author: Jared Adolf-Bryfogle (jadolfbr@gmail.com)

Browsing the build system:

It is recommended to load the source directory as a PyCharm project. PyCharm is a great and free IDE for python. Next, add the following file types File->Settings->File Types [Python] under IDE settings:

  • SConscript*
  • SConstruct*
  • *.settings
  • *.src

Important files and what they do

Each project has a SConscript associated with it. These SConscripts handle setting up project-specific settings. The settings are loaded via classes in main/source/tools/build/settings.py. Each class is a dictionary, and each other class inherits from Settings class.

Classes include:

  • Settings(dict)
  • BuildOptionsSupported (Settings)
  • BuildOptions (Settings)
  • BuildFlags (Settings)
  • BuildSettings (Settings)
  • BuildSettingsCombined (Settings)
  • ProjectSettings (Settings)


Each project has a SConscript associated with it. These SConscripts handle setting up project-specific settings.


These files are responsible for setting up the build.

  • main/source/SConstruct which calls main/source/tools/build/setup.py and then SConscript.
  • main/source/SConscript


These files are responsible for parsing the xxx.apps.settings and xxx.src.settings such as pilot_apps.src.settings and core1.src.settings through the settings.py classes.
There are 5 categories that are parsed in each .settings file here. They include: sources, include_path, library_path, libraries, subprojects.

These files are:

  • main/source/src/SConscript.src
  • main/source/src/SConscript.apps


Responsible primarily for setting up build settings for sqlite3 and cppdb external libraries.

  • main/source/external/SConscript.external



The site.settings files in main/source/tools/build allow you to override any of the settings in the scons build system. This allows you to add specific libraries, include paths, or overide very specific build settings. Both site and user .settings files are loaded via main/source/tools/setup.py via the main SConstruct file.


The basic.settings file in main/source/tools/build control settings for specific platforms and compilers. If a new version of your favorite compiler is released and requires specific tweaks, here is where you would edit what it uses for cc, cxx, link settings, etc. This file is also loaded by main/source/tools/setup.py


The options.settings file in main/source/tools/build is a compilation of what is actually supported by the Rosetta build system. Supported compilers, modes, extras, and systems are loaded from here first by main/source/tools/setup.py


Platforms are initially setup by functions in the main/source/tools/build/setup_platforms file. If new computer architecture is being tested, add it to here first.

See Also

  • Build Documentation: Information on setting up Rosetta
  • Getting Started: A page for people new to Rosetta. New users start here.
  • TACC: Information for running Rosetta on the TACC/Stampede cluster.
  • Commands collection: A list of example command lines for running Rosetta executable files
  • Platforms: Supported platforms for Rosetta