Home | History | Annotate | Download | only in libevent
      1 # This file is generated; do not edit.
      2 
      3 import os
      4 
      5 Import("env")
      6 
      7 env = env.Clone(COMPONENT_NAME='libevent',
      8                 TARGET_NAME='libevent')
      9 
     10 configurations = {
     11     'Debug' : {
     12         'Append' : dict(
     13             CCFLAGS = [
     14                 '-pthread',
     15                 '-fno-exceptions',
     16                 '-fno-asynchronous-unwind-tables',
     17                 '-fvisibility=hidden',
     18                 '-D_FILE_OFFSET_BITS=64',
     19                 '-O0',
     20                 '-g'
     21             ],
     22             CPPDEFINES = [
     23                 'CHROMIUM_BUILD',
     24                 'HAVE_CONFIG_H',
     25                 '_DEBUG'
     26             ],
     27             CPPPATH = [
     28                 env.Dir('$SRC_DIR/third_party/libevent/.'),
     29                 env.Dir('$SRC_DIR/third_party/libevent/linux')
     30             ],
     31             CXXFLAGS = [
     32                 '-fno-rtti',
     33                 '-fno-threadsafe-statics',
     34                 '-fvisibility-inlines-hidden'
     35             ],
     36             LINKFLAGS = [
     37                 '-pthread',
     38                 '-rdynamic'
     39             ],
     40         ),
     41         'FilterOut' : dict(
     42         ),
     43         'Replace' : dict(
     44              FLOCK_LDMODULE = ['flock', '$TOP_BUILDDIR/linker.lock', '$LDMODULE'],
     45              FLOCK_LINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$LINK'],
     46              FLOCK_SHLINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$SHLINK'],
     47              IMPLICIT_COMMAND_DEPENDENCIES = '0',
     48              LDMODULECOM = [['$FLOCK_LDMODULE',
     49   '-o',
     50   '$TARGET',
     51   '$_LIBDIRFLAGS',
     52   '$LDMODULEFLAGS',
     53   '$SOURCES',
     54   '-Wl,--start-group',
     55   '$_LIBFLAGS',
     56   '-Wl,--end-group']],
     57              LIBPATH = ['$LIB_DIR'],
     58              LINKCOM = [['$FLOCK_LINK',
     59   '-o',
     60   '$TARGET',
     61   '$_LIBDIRFLAGS',
     62   '$LINKFLAGS',
     63   '$SOURCES',
     64   '-Wl,--start-group',
     65   '$_LIBFLAGS',
     66   '-Wl,--end-group']],
     67              SHLINKCOM = [['$FLOCK_SHLINK',
     68   '-o',
     69   '$TARGET',
     70   '$_LIBDIRFLAGS',
     71   '$SHLINKFLAGS',
     72   '$SOURCES',
     73   '-Wl,--start-group',
     74   '$_LIBFLAGS',
     75   '-Wl,--end-group']],
     76         ),
     77         'ImportExternal' : [
     78              'AS',
     79              'CC',
     80              'CXX',
     81              'LINK',
     82         ],
     83         'PropagateExternal' : [
     84              'AS',
     85              'CC',
     86              'CCACHE_DIR',
     87              'CXX',
     88              'DISTCC_DIR',
     89              'DISTCC_HOSTS',
     90              'HOME',
     91              'INCLUDE_SERVER_ARGS',
     92              'INCLUDE_SERVER_PORT',
     93              'LINK',
     94              'CHROME_BUILD_TYPE',
     95              'CHROMIUM_BUILD',
     96              'OFFICIAL_BUILD',
     97         ],
     98     },
     99     'Release' : {
    100         'Append' : dict(
    101             CCFLAGS = [
    102                 '-pthread',
    103                 '-fno-exceptions',
    104                 '-fno-asynchronous-unwind-tables',
    105                 '-fvisibility=hidden',
    106                 '-D_FILE_OFFSET_BITS=64',
    107                 '-O2',
    108                 '-fno-ident',
    109                 '-fdata-sections',
    110                 '-ffunction-sections'
    111             ],
    112             CPPDEFINES = [
    113                 'CHROMIUM_BUILD',
    114                 'HAVE_CONFIG_H',
    115                 'NDEBUG',
    116                 'NVALGRIND'
    117             ],
    118             CPPPATH = [
    119                 env.Dir('$SRC_DIR/third_party/libevent/.'),
    120                 env.Dir('$SRC_DIR/third_party/libevent/linux')
    121             ],
    122             CXXFLAGS = [
    123                 '-fno-rtti',
    124                 '-fno-threadsafe-statics',
    125                 '-fvisibility-inlines-hidden'
    126             ],
    127             LINKFLAGS = [
    128                 '-pthread',
    129                 '-Wl,--gc-sections'
    130             ],
    131         ),
    132         'FilterOut' : dict(
    133         ),
    134         'Replace' : dict(
    135              FLOCK_LDMODULE = ['flock', '$TOP_BUILDDIR/linker.lock', '$LDMODULE'],
    136              FLOCK_LINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$LINK'],
    137              FLOCK_SHLINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$SHLINK'],
    138              IMPLICIT_COMMAND_DEPENDENCIES = '0',
    139              LDMODULECOM = [['$FLOCK_LDMODULE',
    140   '-o',
    141   '$TARGET',
    142   '$_LIBDIRFLAGS',
    143   '$LDMODULEFLAGS',
    144   '$SOURCES',
    145   '-Wl,--start-group',
    146   '$_LIBFLAGS',
    147   '-Wl,--end-group']],
    148              LIBPATH = ['$LIB_DIR'],
    149              LINKCOM = [['$FLOCK_LINK',
    150   '-o',
    151   '$TARGET',
    152   '$_LIBDIRFLAGS',
    153   '$LINKFLAGS',
    154   '$SOURCES',
    155   '-Wl,--start-group',
    156   '$_LIBFLAGS',
    157   '-Wl,--end-group']],
    158              SHLINKCOM = [['$FLOCK_SHLINK',
    159   '-o',
    160   '$TARGET',
    161   '$_LIBDIRFLAGS',
    162   '$SHLINKFLAGS',
    163   '$SOURCES',
    164   '-Wl,--start-group',
    165   '$_LIBFLAGS',
    166   '-Wl,--end-group']],
    167         ),
    168         'ImportExternal' : [
    169              'AS',
    170              'CC',
    171              'CXX',
    172              'LINK',
    173         ],
    174         'PropagateExternal' : [
    175              'AS',
    176              'CC',
    177              'CCACHE_DIR',
    178              'CXX',
    179              'DISTCC_DIR',
    180              'DISTCC_HOSTS',
    181              'HOME',
    182              'INCLUDE_SERVER_ARGS',
    183              'INCLUDE_SERVER_PORT',
    184              'LINK',
    185              'CHROME_BUILD_TYPE',
    186              'CHROMIUM_BUILD',
    187              'OFFICIAL_BUILD',
    188         ],
    189     },
    190 }
    191 
    192 config = configurations[env['CONFIG_NAME']]
    193 env.Append(**config['Append'])
    194 env.FilterOut(**config['FilterOut'])
    195 env.Replace(**config['Replace'])
    196 
    197 # Scons forces -fPIC for SHCCFLAGS on some platforms.
    198 # Disable that so we can control it from cflags in gyp.
    199 # Note that Scons itself is inconsistent with its -fPIC
    200 # setting. SHCCFLAGS forces -fPIC, and SHCFLAGS does not.
    201 # This will make SHCCFLAGS consistent with SHCFLAGS.
    202 env['SHCCFLAGS'] = ['$CCFLAGS']
    203 
    204 for _var in config['ImportExternal']:
    205   if _var in ARGUMENTS:
    206     env[_var] = ARGUMENTS[_var]
    207   elif _var in os.environ:
    208     env[_var] = os.environ[_var]
    209 for _var in config['PropagateExternal']:
    210   if _var in ARGUMENTS:
    211     env[_var] = ARGUMENTS[_var]
    212   elif _var in os.environ:
    213     env['ENV'][_var] = os.environ[_var]
    214 
    215 env['ENV']['LD_LIBRARY_PATH'] = env.subst('$LIB_DIR')
    216 
    217 if ARGUMENTS.get('COVERAGE') not in (None, '0'):
    218   env.AppendUnique(
    219             CCFLAGS = [
    220                 '-fprofile-arcs',
    221                 '-ftest-coverage'
    222             ],
    223             LINKFLAGS = [
    224                 '-fprofile-arcs'
    225             ],
    226   )
    227 
    228 if ARGUMENTS.get('PROFILE') not in (None, '0'):
    229   env.AppendUnique(
    230             CCFLAGS = [
    231                 '-pg',
    232                 '-g'
    233             ],
    234             LINKFLAGS = [
    235                 '-pg'
    236             ],
    237   )
    238 
    239 if ARGUMENTS.get('SYMBOLS') not in (None, '0'):
    240   env.AppendUnique(
    241             CCFLAGS = [
    242                 '-g'
    243             ],
    244   )
    245 
    246 input_files = [
    247     'buffer.c',
    248     'evbuffer.c',
    249     'evdns.c',
    250     'event.c',
    251     'event_tagging.c',
    252     'evrpc.c',
    253     'evutil.c',
    254     'http.c',
    255     'log.c',
    256     'poll.c',
    257     'select.c',
    258     'signal.c',
    259     'strlcpy.c',
    260     'epoll.c',
    261     'epoll_sub.c',
    262 ]
    263 
    264 target_files = []
    265 prerequisites = []
    266 
    267 _result = []
    268 for infile in input_files:
    269   if env.compilable(infile):
    270     if (type(infile) == type('')
    271         and (infile.startswith('$SRC_DIR/third_party/libevent/')
    272              or not os.path.isabs(env.subst(infile)))):
    273       # Force files below the build directory by replacing all '..'
    274       # elements in the path with '__':
    275       base, ext = os.path.splitext(os.path.normpath(infile))
    276       base = [d == '..' and '__' or d for d in base.split('/')]
    277       base = os.path.join(*base)
    278       object = '${OBJ_DIR}/${COMPONENT_NAME}/${TARGET_NAME}/' + base
    279       if not infile.startswith('$SRC_DIR/third_party/libevent/'):
    280         infile = '$SRC_DIR/third_party/libevent/' + infile
    281       infile = env.StaticObject(object, infile)[0]
    282     else:
    283       infile = env.StaticObject(infile)[0]
    284   _result.append(infile)
    285 input_files = _result
    286 
    287 _outputs = env.GypStaticLibrary('event', input_files)
    288 target_files.extend(_outputs)
    289 
    290 gyp_target = env.Alias('libevent', target_files)
    291 env.Requires(gyp_target, prerequisites)
    292 Return("gyp_target")
    293