You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

To be tackled by Navid and Joanne:

_setup

Make _setup.bat (for Windows) and _setup (for other OSes) a separate target. Eliminate _setup.vbs. Mostly affects the tool generateScripts.py. June 9 Have made a separate target; also renamed _setup on Linux to _setup.sh for clarity. Mods were made to generateScripts (which could use some clean-up) and to SConstruct, to add the lines which invoke the Builder defined in SConstruct. Contents of _setup.bat are not yet complete.

Externals handling

Reorganize externals.scons. Separate from code; keep common parts in SConsFiles (used by all containers). Individual containers should only need to specify which externals (and which versions) are wanted. Will probably take the form of

  1. A file allExternals.scons in SConsFiles which will contain information (e.g. paths, library groups) about all supported versions of all available externals. See a couple drafts of how this might look: Navid's is in CVS as SConsFiles/allExternals.scons; Joanne's is attached
  2. One or more files in SConsFiles to do "code-like" things: e.g., set up swig, form lib set of externals (needed on Windows to make solution files), etc.
  3. Replace per-container file externals.scons with something that will
    1. choose from among externals in allExternals, making a list called externalLibraries (as the current one is).
    2. invoke externals tools as needed. Will depend on precisely which externals the container is using.
June 11 (approx.) We have something which
we believe is ready to go. See SConsFiles/allExternals.scons and SConsFiles/processExternals.scons in CVS.

Invocation in SConstruct will look like this:

allExternals = SConscript('allExternals.scons')
usedExternals = SConscript('externals.scons', exports = 'allExternals')
SConscript('processExternals.scons', exports = 'allExternals usedExternals')

The per-container externals.scons looks like this:

Import('allExternals')
usedExternals = [ ]
<span style="color: red"> # several lines like the following, one for each external used by the container</span>
usedExternals.append({'name' : 'cfitsio', 'iversion' : 'v3060'})
<span style="color: red"> # .. and finally </span>
Return('usedExternals')

Target names

Separate out target names, probably into master file, to be kept somewhere in SConsFiles, and optional per-container file. These files would be accessible both to SCons itself and to GoGui. Format will be two lists (one or both of which may be empty). First is list of global targets (e.g. includes); second is list of generic per-package target names to which package name should be prepended (e.g. -includes, resulting in a target for each package in the container like facilities-includes)

  • No labels