1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
"""Builder for static libraries composed of the contents of other static libraries.
The following rule creates a library "mylib" whose contents are the contents of
"firstlib", "secondlib", and all LIBDEPS dependencies of "firstlib" and
"secondlib". This creates self-contained static and shared libraries that can
be distributed to customers.
MergeLibrary('mylib', ['firstlib', 'secondlib'])
"""
import libdeps
from SCons.Action import Action
from SCons.Builder import Builder
def merge_library_method(env, target, source, LIBDEPS=None, **kwargs):
return env._MergeLibrary(target, [], LIBDEPS=source, **kwargs)
def exists( env ):
return True
def generate( env ):
merge_library = Builder(
action='$ARCOM $_LIBDEPS_OBJS',
src_prefix='$LIBPREFIX',
src_suffix='$LIBSUFFIX',
prefix='$LIBPREFIX',
suffix='$LIBSUFFIX',
emitter=libdeps.libdeps_emitter )
libdeps.update_scanner( merge_library )
env['BUILDERS']['_MergeLibrary'] = merge_library
env.AddMethod( merge_library_method, 'MergeLibrary' )
|