lsst.sconsUtils

The sconsUtils module provides tooling to support the building of standard LSST packages using SCons.

Contributing

lsst.sconsUtils is developed at https://github.com/lsst/sconsUtils. You can find Jira issues for this module under the sconsUtils component.

Python API reference

Note

Many of the methods defined in this package are injected directly into the base SConsEnvironment. The SConsUtilsEnvironment class exists solely to allow these methods to be documented. The class will not be used when writing SCons files.

lsst.sconsUtils.scripts Module

Classes

BasicSConscript()

A scope-only class for SConscript-replacement convenience functions.

BasicSConstruct(packageName[, ...])

A scope-only class for SConstruct-replacement convenience functions.

lsst.sconsUtils.dependencies Module

Functions

configure(packageName[, versionString, ...])

Recursively configure a package using ups/.cfg files.

Classes

Configuration(cfgFile[, headers, libs, ...])

Base class for defining how to configure an LSST sconsUtils package.

ExternalConfiguration(cfgFile[, headers, ...])

A Configuration subclass for external (third-party) packages.

PackageTree(primaryName[, noCfgFile])

A class for loading and managing the dependency tree of a package, as defined by its configuration module (.cfg) file.

Class Inheritance Diagram

Inheritance diagram of lsst.sconsUtils.dependencies.Configuration, lsst.sconsUtils.dependencies.ExternalConfiguration, lsst.sconsUtils.dependencies.PackageTree

lsst.sconsUtils.tests Module

Classes

Control(env[, ignoreList, expectedFailures, ...])

A class to control and run unit tests.

lsst.sconsUtils.installation Module

Functions

makeProductPath(env, pathFormat)

Return a path to use as the installation directory for a product.

determineVersion(env, versionString)

Set a version ID from env, or a version control ID string ($name$ or $HeadURL$).

getFingerprint(versionString)

Return a unique fingerprint for a version (e.g.

setPrefix(env, versionString[, eupsProductPath])

Set a prefix based on the EUPS_PATH, the product name, and a version string from CVS or SVN.

Classes

DirectoryInstaller(ignoreRegex, recursive)

SCons Action callable to recursively install a directory.

SConsUtilsEnvironment([platform, tools, ...])

Dummy class to make visible the methods injected into the SCons parent environment.

Class Inheritance Diagram

Inheritance diagram of lsst.sconsUtils.installation.DirectoryInstaller, lsst.sconsUtils.installation.SConsUtilsEnvironment

lsst.sconsUtils.builders Module

Functions

filesToTag([root, fileRegex, ignoreDirs])

Return a list of files that need to be scanned for tags, starting at directory root.

Classes

DoxygenBuilder(**kw)

A callable to be used as an SCons Action to run Doxygen.

lsst.sconsUtils.utils Module

Functions

_has_OSX_SIP()

Internal function indicating that the OS has System Integrity Protection.

libraryPathPassThrough()

Name of library path environment variable to be passed throughself.

whichPython()

Path of Python executable to use.

needShebangRewrite()

Is shebang rewriting required?

libraryLoaderEnvironment()

Calculate library loader path environment string to be prepended to external commands.

runExternal(cmd[, fatal, msg])

Safe wrapper for running external programs, reading stdout, and sanitizing error messages.

memberOf(cls[, name])

A Python decorator that injects functions into a class.

get_conda_prefix()

Returns a copy of the current conda prefix, if available.

Classes

Log()

A dead-simple logger for all messages.

Using sconsUtils without the conda Compilers

If you would like to use sconsUtils without the conda compilers, then put SCONSUTILS_AVOID_CONDA_COMPILERS in your environment with a non-None value. This environment variable will instruct sconsUtils to use the default system compilers and compiler flags.