BasicSConstruct¶
-
class
lsst.sconsUtils.scripts.BasicSConstruct¶ Bases:
objectA scope-only class for SConstruct-replacement convenience functions.
The boilerplate for a standard LSST SConstruct file is replaced by two static methods:
initialize()andfinish(). The former configures dependencies, sets up package-dependent environment variables, and calls any SConscript files found in subdirectories, while the latter sets up installation paths, default targets, and explicit dependencies.Calling
BasicSConstructas a function invokes its__new__method, which calls bothinitializeandfinish, and should be used when the SConstruct file doesn’t need to do anything other than what they provide. When called this way it returns theenvEnvironment object rather than aBasicSConstructinstance (which would be useless).Methods Summary
finish([defaultTargets, subDirList, ignoreRegex])Convenience function to replace standard SConstruct boilerplate (step 2). initialize(packageName[, versionString, …])Convenience function to replace standard SConstruct boilerplate (step 1). Methods Documentation
-
static
finish(defaultTargets=('lib', 'python', 'shebang', 'tests', 'examples', 'doc'), subDirList=None, ignoreRegex=None)¶ Convenience function to replace standard SConstruct boilerplate (step 2).
This function:
- Sets up installation paths.
- Tells SCons to only do MD5 checks when timestamps have changed.
- Sets the “include”, “lib”, “python”, and “tests” targets as the defaults to be built when scons is run with no target arguments.
Parameters: - subDirList :
list An explicit list of subdirectories that should be installed. By default, all non-hidden subdirectories will be installed.
- defaultTargets :
list A sequence of targets (see
lsst.sconsUtils.state.targets) that should be built when scons is run with no arguments.- ignoreRegex :
str Regular expression that matches files that should not be installed.
Returns: - env :
lsst.sconsUtils.env A SCons Environment.
-
classmethod
initialize(packageName, versionString=None, eupsProduct=None, eupsProductPath=None, cleanExt=None, versionModuleName='python/lsst/%s/version.py', noCfgFile=False, sconscriptOrder=None, disableCc=False)¶ Convenience function to replace standard SConstruct boilerplate (step 1).
This function:
- Calls all SConscript files found in subdirectories.
- Configures dependencies.
- Sets how the
--cleanoption works.
Parameters: - packageName :
str Name of the package being built; must correspond to a .cfg file in
ups/.- versionString :
str, optional Version-control system string to be parsed for version information (
$HeadURL$for SVN). Defaults to “git” if not set orNone.- eupsProduct :
str, optional Name of the EUPS product being built. Defaults to and is almost always the name of the package.
- eupsProductPath :
str, optional An alternate directory where the package should be installed.
- cleanExt :
list, optional Whitespace delimited sequence of globs for files to remove with
--clean.- versionModuleName :
str, optional If non-None, builds a
version.pymodule as this file;'%s'is replaced with the name of the package.- noCfgFile :
bool, optional If True, this package has no .cfg file
- sconscriptOrder :
list, optional A sequence of directory names that set the order for processing SConscript files discovered in nested directories. Full directories need not be specified, but paths must begin at the root. For example,
["lib", "python"]will ensure thatlib/SConscriptis run before bothpython/foo/SConscriptandpython/bar/SConscript. The default order should work for most LSST SCons builds, as it provides the correct ordering for thelib,python,tests,examples, anddoctargets. If this argument is provided, it must include the subset of that list that is valid for the package, in that order.- disableCC :
bool, optional Should the C++ compiler check be disabled? Disabling this checks allows a faster startup and permits building on systems that don’t meet the requirements for the C++ compilter (e.g., for pure-python packages).
Returns: - env :
lsst.sconsUtils.env A SCons Environment object.
-
static