Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

/
    SConstruct
    externals.scons            List of externals and their versions.  Can utilize GLAST_EXT or over-ride individual libraries.  Check scons -h for available options.
    (Likelihood)                  Directories are in ( )
    (facilities)
        SConscript
        facilitiesLib.py            <package>Lib.py lives in each package
    (site_scons)
        (site_tool)
    (include)                        installation location for public headers
    (lib)

externals.scons

List of external libraries and versions.  Can specify GLAST_EXT or over-ride individual libraries.  scons -h will list the available options.                              installation location for libraries

automated dependencies

Recommended fix from SCons developers is to introduce a SCons tool (a python function) which is used to update the environment.  Tools are located in the site_tool directory by default, this can be over-ridden via an option when invoking the tool.  There is a <packagename>Lib<package>Lib.py file within each package.  Similiar Similar in function to CMT's "use" statements, this file lists what other packages this package requires.  Only lists direct dependencies, SCons figures out the rest.

...

Next Navid provided a run-through of the contents of the SConstruct file.

Appends The SConstruct file appends to the environment such as cflags.  Currently this is implemented in a linux-centric fashion.  This will be updated for platform independence in the near future as we need to start testing on Windows.

Next the incDir and libDir are defined, which defines the installation directories.  These are the (include) and (lib) directories specified above.  Note that while the lib directory is flat, such that all libraries are stored without any subdirectories, the include directory has a structure where we have /include/<packageName>/.h  All public header files will be stored in the include directory.  In the case of a container package such as celestialSources, the structure would be /include/GRB/.h, so we omit the celestialSources, just as we do now with CMT.  We could expand our definition of installation directories to include pfiles, xml files, jobOptions, etc.

...