File: mergelib.py

package info (click to toggle)
mongodb 1%3A2.4.10-5
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 82,464 kB
  • sloc: cpp: 740,225; ansic: 152,098; sh: 13,820; python: 11,864; makefile: 1,012; perl: 922; pascal: 617; java: 452; lisp: 222; asm: 174
file content (32 lines) | stat: -rw-r--r-- 1,069 bytes parent folder | download | duplicates (4)
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' )