Versions Compared

Key

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

...

Type 1 Package xxx builds a shared library and has public headers.  Need to add a couple lines to xxxLib.py (the file which gets invoked for the environment building xxx's library and also by other environements, building targets depending on that library) so that packages depending on xxx will get proper thing added to their include path:

Code Block
titleCode needed for Type 1 in EventLib.py for pkg Event
if env['PLATFORM'] == 'win32' and env.get('CONTAINERNAME','') == 'GlastRelease':
            env.Tool('findPkgPath', package = 'Event') 

Type 2 Package xxx builds a static library.  Here, since the library does not depend on other package libraries, components have to be added "by hand" to the include path. These changes, varying somewhat on a per-package basis, also go in xxxLib.py.

Code Block
titleCode in SConscript for pkg idents

 libEnv.Tool('addLinkDeps', pacakge='idents', toBuild='static')
Code Block
titleCode in identsLib.py

def generate(env, **kw):
    if not kw.get('depsOnly', 0):
        env.Tool('addLibrary', library = ['idents'])

        # NEW SECTION - needed for libraries or programs linking to idents library
        if env['PLATFORM'] == 'win32' and env.get('CONTAINERNAME','') == 'GlastRelease':
            env.Tool('findPkgPath', package = 'idents')
            env.Tool('findPkgPath', package = 'facilities')

    # NEW SECTION - needed to compile source files in idents
    if kw.get('incsOnly', 0) == 1:
        env.Tool('findPkgPath', package = 'facilities')

    return

    env.Tool('addLibrary', library = ['facilities'])

Type 3 Anything needing access to headers from the enums package (and not dependent on something else needing access to enums).  enums doesn't have a library. When headers are installed, there is no need for explicit action to get access to enums' headers.  If they're not, packages needing those headers must add an entry to their include path.

...