Home | History | Annotate | Download | only in icu
      1 # This file is generated; do not edit.
      2 
      3 import os
      4 
      5 Import("env")
      6 
      7 env = env.Clone(COMPONENT_NAME='icu',
      8                 TARGET_NAME='icuuc')
      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                 '-fno-strict-aliasing',
     20                 '-Wno-deprecated-declarations',
     21                 '-Wno-unused-function',
     22                 '-O0',
     23                 '-g'
     24             ],
     25             CPPDEFINES = [
     26                 'U_STATIC_IMPLEMENTATION',
     27                 'CHROMIUM_BUILD',
     28                 'U_COMMON_IMPLEMENTATION',
     29                 '_DEBUG'
     30             ],
     31             CPPPATH = [
     32                 env.Dir('$SRC_DIR/third_party/icu/public/common'),
     33                 env.Dir('$SRC_DIR/third_party/icu/public/i18n'),
     34                 env.Dir('$SRC_DIR/third_party/icu/source/common'),
     35                 env.Dir('$SRC_DIR/third_party/icu/source/i18n')
     36             ],
     37             CXXFLAGS = [
     38                 '-fno-rtti',
     39                 '-fno-threadsafe-statics',
     40                 '-fvisibility-inlines-hidden'
     41             ],
     42             LINKFLAGS = [
     43                 '-pthread',
     44                 '-rdynamic'
     45             ],
     46         ),
     47         'FilterOut' : dict(
     48         ),
     49         'Replace' : dict(
     50              FLOCK_LDMODULE = ['flock', '$TOP_BUILDDIR/linker.lock', '$LDMODULE'],
     51              FLOCK_LINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$LINK'],
     52              FLOCK_SHLINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$SHLINK'],
     53              IMPLICIT_COMMAND_DEPENDENCIES = '0',
     54              LDMODULECOM = [['$FLOCK_LDMODULE',
     55   '-o',
     56   '$TARGET',
     57   '$_LIBDIRFLAGS',
     58   '$LDMODULEFLAGS',
     59   '$SOURCES',
     60   '-Wl,--start-group',
     61   '$_LIBFLAGS',
     62   '-Wl,--end-group']],
     63              LIBPATH = ['$LIB_DIR'],
     64              LINKCOM = [['$FLOCK_LINK',
     65   '-o',
     66   '$TARGET',
     67   '$_LIBDIRFLAGS',
     68   '$LINKFLAGS',
     69   '$SOURCES',
     70   '-Wl,--start-group',
     71   '$_LIBFLAGS',
     72   '-Wl,--end-group']],
     73              SHLINKCOM = [['$FLOCK_SHLINK',
     74   '-o',
     75   '$TARGET',
     76   '$_LIBDIRFLAGS',
     77   '$SHLINKFLAGS',
     78   '$SOURCES',
     79   '-Wl,--start-group',
     80   '$_LIBFLAGS',
     81   '-Wl,--end-group']],
     82         ),
     83         'ImportExternal' : [
     84              'AS',
     85              'CC',
     86              'CXX',
     87              'LINK',
     88         ],
     89         'PropagateExternal' : [
     90              'AS',
     91              'CC',
     92              'CCACHE_DIR',
     93              'CXX',
     94              'DISTCC_DIR',
     95              'DISTCC_HOSTS',
     96              'HOME',
     97              'INCLUDE_SERVER_ARGS',
     98              'INCLUDE_SERVER_PORT',
     99              'LINK',
    100              'CHROME_BUILD_TYPE',
    101              'CHROMIUM_BUILD',
    102              'OFFICIAL_BUILD',
    103         ],
    104     },
    105     'Release' : {
    106         'Append' : dict(
    107             CCFLAGS = [
    108                 '-pthread',
    109                 '-fno-exceptions',
    110                 '-fno-asynchronous-unwind-tables',
    111                 '-fvisibility=hidden',
    112                 '-D_FILE_OFFSET_BITS=64',
    113                 '-fno-strict-aliasing',
    114                 '-Wno-deprecated-declarations',
    115                 '-Wno-unused-function',
    116                 '-O2',
    117                 '-fno-ident',
    118                 '-fdata-sections',
    119                 '-ffunction-sections'
    120             ],
    121             CPPDEFINES = [
    122                 'U_STATIC_IMPLEMENTATION',
    123                 'CHROMIUM_BUILD',
    124                 'U_COMMON_IMPLEMENTATION',
    125                 'NDEBUG',
    126                 'NVALGRIND'
    127             ],
    128             CPPPATH = [
    129                 env.Dir('$SRC_DIR/third_party/icu/public/common'),
    130                 env.Dir('$SRC_DIR/third_party/icu/public/i18n'),
    131                 env.Dir('$SRC_DIR/third_party/icu/source/common'),
    132                 env.Dir('$SRC_DIR/third_party/icu/source/i18n')
    133             ],
    134             CXXFLAGS = [
    135                 '-fno-rtti',
    136                 '-fno-threadsafe-statics',
    137                 '-fvisibility-inlines-hidden'
    138             ],
    139             LINKFLAGS = [
    140                 '-pthread',
    141                 '-Wl,--gc-sections'
    142             ],
    143         ),
    144         'FilterOut' : dict(
    145         ),
    146         'Replace' : dict(
    147              FLOCK_LDMODULE = ['flock', '$TOP_BUILDDIR/linker.lock', '$LDMODULE'],
    148              FLOCK_LINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$LINK'],
    149              FLOCK_SHLINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$SHLINK'],
    150              IMPLICIT_COMMAND_DEPENDENCIES = '0',
    151              LDMODULECOM = [['$FLOCK_LDMODULE',
    152   '-o',
    153   '$TARGET',
    154   '$_LIBDIRFLAGS',
    155   '$LDMODULEFLAGS',
    156   '$SOURCES',
    157   '-Wl,--start-group',
    158   '$_LIBFLAGS',
    159   '-Wl,--end-group']],
    160              LIBPATH = ['$LIB_DIR'],
    161              LINKCOM = [['$FLOCK_LINK',
    162   '-o',
    163   '$TARGET',
    164   '$_LIBDIRFLAGS',
    165   '$LINKFLAGS',
    166   '$SOURCES',
    167   '-Wl,--start-group',
    168   '$_LIBFLAGS',
    169   '-Wl,--end-group']],
    170              SHLINKCOM = [['$FLOCK_SHLINK',
    171   '-o',
    172   '$TARGET',
    173   '$_LIBDIRFLAGS',
    174   '$SHLINKFLAGS',
    175   '$SOURCES',
    176   '-Wl,--start-group',
    177   '$_LIBFLAGS',
    178   '-Wl,--end-group']],
    179         ),
    180         'ImportExternal' : [
    181              'AS',
    182              'CC',
    183              'CXX',
    184              'LINK',
    185         ],
    186         'PropagateExternal' : [
    187              'AS',
    188              'CC',
    189              'CCACHE_DIR',
    190              'CXX',
    191              'DISTCC_DIR',
    192              'DISTCC_HOSTS',
    193              'HOME',
    194              'INCLUDE_SERVER_ARGS',
    195              'INCLUDE_SERVER_PORT',
    196              'LINK',
    197              'CHROME_BUILD_TYPE',
    198              'CHROMIUM_BUILD',
    199              'OFFICIAL_BUILD',
    200         ],
    201     },
    202 }
    203 
    204 config = configurations[env['CONFIG_NAME']]
    205 env.Append(**config['Append'])
    206 env.FilterOut(**config['FilterOut'])
    207 env.Replace(**config['Replace'])
    208 
    209 # Scons forces -fPIC for SHCCFLAGS on some platforms.
    210 # Disable that so we can control it from cflags in gyp.
    211 # Note that Scons itself is inconsistent with its -fPIC
    212 # setting. SHCCFLAGS forces -fPIC, and SHCFLAGS does not.
    213 # This will make SHCCFLAGS consistent with SHCFLAGS.
    214 env['SHCCFLAGS'] = ['$CCFLAGS']
    215 
    216 for _var in config['ImportExternal']:
    217   if _var in ARGUMENTS:
    218     env[_var] = ARGUMENTS[_var]
    219   elif _var in os.environ:
    220     env[_var] = os.environ[_var]
    221 for _var in config['PropagateExternal']:
    222   if _var in ARGUMENTS:
    223     env[_var] = ARGUMENTS[_var]
    224   elif _var in os.environ:
    225     env['ENV'][_var] = os.environ[_var]
    226 
    227 env['ENV']['LD_LIBRARY_PATH'] = env.subst('$LIB_DIR')
    228 
    229 if ARGUMENTS.get('COVERAGE') not in (None, '0'):
    230   env.AppendUnique(
    231             CCFLAGS = [
    232                 '-fprofile-arcs',
    233                 '-ftest-coverage'
    234             ],
    235             LINKFLAGS = [
    236                 '-fprofile-arcs'
    237             ],
    238   )
    239 
    240 if ARGUMENTS.get('PROFILE') not in (None, '0'):
    241   env.AppendUnique(
    242             CCFLAGS = [
    243                 '-pg',
    244                 '-g'
    245             ],
    246             LINKFLAGS = [
    247                 '-pg'
    248             ],
    249   )
    250 
    251 if ARGUMENTS.get('SYMBOLS') not in (None, '0'):
    252   env.AppendUnique(
    253             CCFLAGS = [
    254                 '-g'
    255             ],
    256   )
    257 
    258 input_files = [
    259     'source/common/bmpset.cpp',
    260     'source/common/brkeng.cpp',
    261     'source/common/brkiter.cpp',
    262     'source/common/bytestream.cpp',
    263     'source/common/caniter.cpp',
    264     'source/common/chariter.cpp',
    265     'source/common/cmemory.c',
    266     'source/common/cstring.c',
    267     'source/common/cwchar.c',
    268     'source/common/dictbe.cpp',
    269     'source/common/dtintrv.cpp',
    270     'source/common/errorcode.cpp',
    271     'source/common/locbased.cpp',
    272     'source/common/locid.cpp',
    273     'source/common/locmap.c',
    274     'source/common/locutil.cpp',
    275     'source/common/mutex.cpp',
    276     'source/common/normlzr.cpp',
    277     'source/common/parsepos.cpp',
    278     'source/common/propname.cpp',
    279     'source/common/propsvec.c',
    280     'source/common/punycode.c',
    281     'source/common/putil.c',
    282     'source/common/rbbi.cpp',
    283     'source/common/rbbidata.cpp',
    284     'source/common/rbbinode.cpp',
    285     'source/common/rbbirb.cpp',
    286     'source/common/rbbiscan.cpp',
    287     'source/common/rbbisetb.cpp',
    288     'source/common/rbbistbl.cpp',
    289     'source/common/rbbitblb.cpp',
    290     'source/common/resbund.cpp',
    291     'source/common/resbund_cnv.cpp',
    292     'source/common/ruleiter.cpp',
    293     'source/common/schriter.cpp',
    294     'source/common/serv.cpp',
    295     'source/common/servlk.cpp',
    296     'source/common/servlkf.cpp',
    297     'source/common/servls.cpp',
    298     'source/common/servnotf.cpp',
    299     'source/common/servrbf.cpp',
    300     'source/common/servslkf.cpp',
    301     'source/common/stringpiece.cpp',
    302     'source/common/triedict.cpp',
    303     'source/common/uarrsort.c',
    304     'source/common/ubidi.c',
    305     'source/common/ubidi_props.c',
    306     'source/common/ubidiln.c',
    307     'source/common/ubidiwrt.c',
    308     'source/common/ubrk.cpp',
    309     'source/common/ucase.c',
    310     'source/common/ucasemap.c',
    311     'source/common/ucat.c',
    312     'source/common/uchar.c',
    313     'source/common/uchriter.cpp',
    314     'source/common/ucln_cmn.c',
    315     'source/common/ucmndata.c',
    316     'source/common/ucnv.c',
    317     'source/common/ucnv2022.c',
    318     'source/common/ucnv_bld.c',
    319     'source/common/ucnv_cb.c',
    320     'source/common/ucnv_cnv.c',
    321     'source/common/ucnv_err.c',
    322     'source/common/ucnv_ext.c',
    323     'source/common/ucnv_io.c',
    324     'source/common/ucnv_lmb.c',
    325     'source/common/ucnv_set.c',
    326     'source/common/ucnv_u16.c',
    327     'source/common/ucnv_u32.c',
    328     'source/common/ucnv_u7.c',
    329     'source/common/ucnv_u8.c',
    330     'source/common/ucnvbocu.c',
    331     'source/common/ucnvdisp.c',
    332     'source/common/ucnvhz.c',
    333     'source/common/ucnvisci.c',
    334     'source/common/ucnvlat1.c',
    335     'source/common/ucnvmbcs.c',
    336     'source/common/ucnvscsu.c',
    337     'source/common/ucnvsel.cpp',
    338     'source/common/ucol_swp.c',
    339     'source/common/udata.c',
    340     'source/common/udatamem.c',
    341     'source/common/udataswp.c',
    342     'source/common/uenum.c',
    343     'source/common/uhash.c',
    344     'source/common/uhash_us.cpp',
    345     'source/common/uidna.cpp',
    346     'source/common/uinit.c',
    347     'source/common/uinvchar.c',
    348     'source/common/uiter.cpp',
    349     'source/common/ulist.c',
    350     'source/common/uloc.c',
    351     'source/common/uloc_tag.c',
    352     'source/common/umapfile.c',
    353     'source/common/umath.c',
    354     'source/common/umutex.c',
    355     'source/common/unames.c',
    356     'source/common/unifilt.cpp',
    357     'source/common/unifunct.cpp',
    358     'source/common/uniset.cpp',
    359     'source/common/uniset_props.cpp',
    360     'source/common/unisetspan.cpp',
    361     'source/common/unistr.cpp',
    362     'source/common/unistr_case.cpp',
    363     'source/common/unistr_cnv.cpp',
    364     'source/common/unistr_props.cpp',
    365     'source/common/unorm.cpp',
    366     'source/common/unorm_it.c',
    367     'source/common/unormcmp.cpp',
    368     'source/common/uobject.cpp',
    369     'source/common/uprops.c',
    370     'source/common/ures_cnv.c',
    371     'source/common/uresbund.c',
    372     'source/common/uresdata.c',
    373     'source/common/usc_impl.c',
    374     'source/common/uscript.c',
    375     'source/common/uset.cpp',
    376     'source/common/uset_props.cpp',
    377     'source/common/usetiter.cpp',
    378     'source/common/ushape.c',
    379     'source/common/usprep.cpp',
    380     'source/common/ustack.cpp',
    381     'source/common/ustr_cnv.c',
    382     'source/common/ustr_wcs.c',
    383     'source/common/ustrcase.c',
    384     'source/common/ustrenum.cpp',
    385     'source/common/ustrfmt.c',
    386     'source/common/ustring.c',
    387     'source/common/ustrtrns.c',
    388     'source/common/utext.cpp',
    389     'source/common/utf_impl.c',
    390     'source/common/util.cpp',
    391     'source/common/util_props.cpp',
    392     'source/common/utrace.c',
    393     'source/common/utrie2_builder.c',
    394     'source/common/utrie2.c',
    395     'source/common/utrie.c',
    396     'source/common/utypes.c',
    397     'source/common/uvector.cpp',
    398     'source/common/uvectr32.cpp',
    399     'source/common/wintz.c',
    400 ]
    401 
    402 target_files = []
    403 prerequisites = []
    404 
    405 _result = []
    406 for infile in input_files:
    407   if env.compilable(infile):
    408     if (type(infile) == type('')
    409         and (infile.startswith('$SRC_DIR/third_party/icu/')
    410              or not os.path.isabs(env.subst(infile)))):
    411       # Force files below the build directory by replacing all '..'
    412       # elements in the path with '__':
    413       base, ext = os.path.splitext(os.path.normpath(infile))
    414       base = [d == '..' and '__' or d for d in base.split('/')]
    415       base = os.path.join(*base)
    416       object = '${OBJ_DIR}/${COMPONENT_NAME}/${TARGET_NAME}/' + base
    417       if not infile.startswith('$SRC_DIR/third_party/icu/'):
    418         infile = '$SRC_DIR/third_party/icu/' + infile
    419       infile = env.StaticObject(object, infile)[0]
    420     else:
    421       infile = env.StaticObject(infile)[0]
    422   _result.append(infile)
    423 input_files = _result
    424 
    425 _outputs = env.GypStaticLibrary('icuuc', input_files)
    426 target_files.extend(_outputs)
    427 
    428 gyp_target = env.Alias('icuuc', target_files)
    429 env.Requires(gyp_target, prerequisites)
    430 Return("gyp_target")
    431