Versions Compared

Key

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

There a couple ways to adapt ASP to SCons:

  • Make it into a new kind of "override" container
  • Make it a full-fledged container, just like ST and GR. In CVS ASP-scons would have symbolic links to all packages it uses: both ASP-specific and those coming from ScienceTools.

Override

ASP is similar in all respects to containers ScienceTools, GlastRelease and CHS with one notable exception: it depends on ScienceTools, another full-fledged container, more or less as if it were an external library. When building or running ASP, one must have access to ScienceTools installed files (includes, libraries, python scripts). This is just the way an override directory behaves. The base installation is (or should be) read-only and packages in the override directory may access any of the installed products from the base directory, as well as files installed under the override directory.

...

Up till now, in the case where there is an override directory, all the global files come from the base, but if the override directory is container-like it might need its own copy of the category 2 files. ASP needs its own package.scons (which should override the ScienceTools one) but, as currently constituted, does not need its own externals.scons.

Modified ASP

CVS organization (

...

override)

Make an ASP-scons container package containing

  • an ASP-specific package.scons file
  • src directory with mainpage.h
  • symbolic links to all code packages belonging to ASP (AspHealPix, AspLauncher, etc.) but no link to AspPolicy.

The job AspPolicy does will be handled some other way, perhaps involving adding code to package.scons or inventing a new top-level file.

CVS organization (complete container)

Make an ASP-scons container package containing

  • package.scons
  • externals.scons (must at a minimum reference all externals used by ScienceTools packages)
  • symbolic links to files in category 3 above (SConstruct, allExternals.scons, site_scons/site_tools/) as is the case for other containers
  • symbolic links to all code packages specific to ASP and any used from ScienceTools

To-do

The steps for either approach are the same in either case:

  • Implement CVS organization described above
  • Add SConscript files to all ASP packages
  • Add xxxLib.py files to all ASP packages building libraries
  • Design and implement SCons code equivalent to AspPolicy

But the CVS organization will differ as described, as will the details of the SCons code meant to handle AspPolicy functions (probably simpler in the complete container approach).