# This file is generated; do not edit.

import os

Import("env")

env = env.Clone(COMPONENT_NAME='icu',
                TARGET_NAME='icui18n')

configurations = {
    'Debug' : {
        'Append' : dict(
            CCFLAGS = [
                '-pthread',
                '-fno-exceptions',
                '-fno-asynchronous-unwind-tables',
                '-fvisibility=hidden',
                '-D_FILE_OFFSET_BITS=64',
                '-Wno-deprecated-declarations',
                '-O0',
                '-g'
            ],
            CPPDEFINES = [
                'U_STATIC_IMPLEMENTATION',
                'CHROMIUM_BUILD',
                'U_I18N_IMPLEMENTATION',
                '_DEBUG'
            ],
            CPPPATH = [
                env.Dir('$SRC_DIR/third_party/icu/public/common'),
                env.Dir('$SRC_DIR/third_party/icu/public/i18n'),
                env.Dir('$SRC_DIR/third_party/icu/source/common'),
                env.Dir('$SRC_DIR/third_party/icu/source/i18n')
            ],
            CXXFLAGS = [
                '-fno-rtti',
                '-fno-threadsafe-statics',
                '-fvisibility-inlines-hidden'
            ],
            LINKFLAGS = [
                '-pthread',
                '-rdynamic'
            ],
        ),
        'FilterOut' : dict(
        ),
        'Replace' : dict(
             FLOCK_LDMODULE = ['flock', '$TOP_BUILDDIR/linker.lock', '$LDMODULE'],
             FLOCK_LINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$LINK'],
             FLOCK_SHLINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$SHLINK'],
             IMPLICIT_COMMAND_DEPENDENCIES = '0',
             LDMODULECOM = [['$FLOCK_LDMODULE',
  '-o',
  '$TARGET',
  '$_LIBDIRFLAGS',
  '$LDMODULEFLAGS',
  '$SOURCES',
  '-Wl,--start-group',
  '$_LIBFLAGS',
  '-Wl,--end-group']],
             LIBPATH = ['$LIB_DIR'],
             LINKCOM = [['$FLOCK_LINK',
  '-o',
  '$TARGET',
  '$_LIBDIRFLAGS',
  '$LINKFLAGS',
  '$SOURCES',
  '-Wl,--start-group',
  '$_LIBFLAGS',
  '-Wl,--end-group']],
             SHLINKCOM = [['$FLOCK_SHLINK',
  '-o',
  '$TARGET',
  '$_LIBDIRFLAGS',
  '$SHLINKFLAGS',
  '$SOURCES',
  '-Wl,--start-group',
  '$_LIBFLAGS',
  '-Wl,--end-group']],
        ),
        'ImportExternal' : [
             'AS',
             'CC',
             'CXX',
             'LINK',
        ],
        'PropagateExternal' : [
             'AS',
             'CC',
             'CCACHE_DIR',
             'CXX',
             'DISTCC_DIR',
             'DISTCC_HOSTS',
             'HOME',
             'INCLUDE_SERVER_ARGS',
             'INCLUDE_SERVER_PORT',
             'LINK',
             'CHROME_BUILD_TYPE',
             'CHROMIUM_BUILD',
             'OFFICIAL_BUILD',
        ],
    },
    'Release' : {
        'Append' : dict(
            CCFLAGS = [
                '-pthread',
                '-fno-exceptions',
                '-fno-asynchronous-unwind-tables',
                '-fvisibility=hidden',
                '-D_FILE_OFFSET_BITS=64',
                '-Wno-deprecated-declarations',
                '-O2',
                '-fno-ident',
                '-fdata-sections',
                '-ffunction-sections'
            ],
            CPPDEFINES = [
                'U_STATIC_IMPLEMENTATION',
                'CHROMIUM_BUILD',
                'U_I18N_IMPLEMENTATION',
                'NDEBUG',
                'NVALGRIND'
            ],
            CPPPATH = [
                env.Dir('$SRC_DIR/third_party/icu/public/common'),
                env.Dir('$SRC_DIR/third_party/icu/public/i18n'),
                env.Dir('$SRC_DIR/third_party/icu/source/common'),
                env.Dir('$SRC_DIR/third_party/icu/source/i18n')
            ],
            CXXFLAGS = [
                '-fno-rtti',
                '-fno-threadsafe-statics',
                '-fvisibility-inlines-hidden'
            ],
            LINKFLAGS = [
                '-pthread',
                '-Wl,--gc-sections'
            ],
        ),
        'FilterOut' : dict(
        ),
        'Replace' : dict(
             FLOCK_LDMODULE = ['flock', '$TOP_BUILDDIR/linker.lock', '$LDMODULE'],
             FLOCK_LINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$LINK'],
             FLOCK_SHLINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$SHLINK'],
             IMPLICIT_COMMAND_DEPENDENCIES = '0',
             LDMODULECOM = [['$FLOCK_LDMODULE',
  '-o',
  '$TARGET',
  '$_LIBDIRFLAGS',
  '$LDMODULEFLAGS',
  '$SOURCES',
  '-Wl,--start-group',
  '$_LIBFLAGS',
  '-Wl,--end-group']],
             LIBPATH = ['$LIB_DIR'],
             LINKCOM = [['$FLOCK_LINK',
  '-o',
  '$TARGET',
  '$_LIBDIRFLAGS',
  '$LINKFLAGS',
  '$SOURCES',
  '-Wl,--start-group',
  '$_LIBFLAGS',
  '-Wl,--end-group']],
             SHLINKCOM = [['$FLOCK_SHLINK',
  '-o',
  '$TARGET',
  '$_LIBDIRFLAGS',
  '$SHLINKFLAGS',
  '$SOURCES',
  '-Wl,--start-group',
  '$_LIBFLAGS',
  '-Wl,--end-group']],
        ),
        'ImportExternal' : [
             'AS',
             'CC',
             'CXX',
             'LINK',
        ],
        'PropagateExternal' : [
             'AS',
             'CC',
             'CCACHE_DIR',
             'CXX',
             'DISTCC_DIR',
             'DISTCC_HOSTS',
             'HOME',
             'INCLUDE_SERVER_ARGS',
             'INCLUDE_SERVER_PORT',
             'LINK',
             'CHROME_BUILD_TYPE',
             'CHROMIUM_BUILD',
             'OFFICIAL_BUILD',
        ],
    },
}

config = configurations[env['CONFIG_NAME']]
env.Append(**config['Append'])
env.FilterOut(**config['FilterOut'])
env.Replace(**config['Replace'])

# Scons forces -fPIC for SHCCFLAGS on some platforms.
# Disable that so we can control it from cflags in gyp.
# Note that Scons itself is inconsistent with its -fPIC
# setting. SHCCFLAGS forces -fPIC, and SHCFLAGS does not.
# This will make SHCCFLAGS consistent with SHCFLAGS.
env['SHCCFLAGS'] = ['$CCFLAGS']

for _var in config['ImportExternal']:
  if _var in ARGUMENTS:
    env[_var] = ARGUMENTS[_var]
  elif _var in os.environ:
    env[_var] = os.environ[_var]
for _var in config['PropagateExternal']:
  if _var in ARGUMENTS:
    env[_var] = ARGUMENTS[_var]
  elif _var in os.environ:
    env['ENV'][_var] = os.environ[_var]

env['ENV']['LD_LIBRARY_PATH'] = env.subst('$LIB_DIR')

if ARGUMENTS.get('COVERAGE') not in (None, '0'):
  env.AppendUnique(
            CCFLAGS = [
                '-fprofile-arcs',
                '-ftest-coverage'
            ],
            LINKFLAGS = [
                '-fprofile-arcs'
            ],
  )

if ARGUMENTS.get('PROFILE') not in (None, '0'):
  env.AppendUnique(
            CCFLAGS = [
                '-pg',
                '-g'
            ],
            LINKFLAGS = [
                '-pg'
            ],
  )

if ARGUMENTS.get('SYMBOLS') not in (None, '0'):
  env.AppendUnique(
            CCFLAGS = [
                '-g'
            ],
  )

input_files = [
    'source/i18n/anytrans.cpp',
    'source/i18n/astro.cpp',
    'source/i18n/basictz.cpp',
    'source/i18n/bms.cpp',
    'source/i18n/bmsearch.cpp',
    'source/i18n/bocsu.c',
    'source/i18n/buddhcal.cpp',
    'source/i18n/brktrans.cpp',
    'source/i18n/calendar.cpp',
    'source/i18n/casetrn.cpp',
    'source/i18n/cecal.cpp',
    'source/i18n/chnsecal.cpp',
    'source/i18n/choicfmt.cpp',
    'source/i18n/coleitr.cpp',
    'source/i18n/coll.cpp',
    'source/i18n/colldata.cpp',
    'source/i18n/coptccal.cpp',
    'source/i18n/cpdtrans.cpp',
    'source/i18n/csdetect.cpp',
    'source/i18n/csmatch.cpp',
    'source/i18n/csr2022.cpp',
    'source/i18n/csrecog.cpp',
    'source/i18n/csrmbcs.cpp',
    'source/i18n/csrsbcs.cpp',
    'source/i18n/csrucode.cpp',
    'source/i18n/csrutf8.cpp',
    'source/i18n/curramt.cpp',
    'source/i18n/currfmt.cpp',
    'source/i18n/currpinf.cpp',
    'source/i18n/currunit.cpp',
    'source/i18n/datefmt.cpp',
    'source/i18n/dcfmtsym.cpp',
    'source/i18n/decimfmt.cpp',
    'source/i18n/digitlst.cpp',
    'source/i18n/dtfmtsym.cpp',
    'source/i18n/dtitvfmt.cpp',
    'source/i18n/dtitvinf.cpp',
    'source/i18n/dtptngen.cpp',
    'source/i18n/dtrule.cpp',
    'source/i18n/esctrn.cpp',
    'source/i18n/ethpccal.cpp',
    'source/i18n/fmtable.cpp',
    'source/i18n/fmtable_cnv.cpp',
    'source/i18n/format.cpp',
    'source/i18n/funcrepl.cpp',
    'source/i18n/gregocal.cpp',
    'source/i18n/gregoimp.cpp',
    'source/i18n/hebrwcal.cpp',
    'source/i18n/indiancal.cpp',
    'source/i18n/inputext.cpp',
    'source/i18n/islamcal.cpp',
    'source/i18n/japancal.cpp',
    'source/i18n/measfmt.cpp',
    'source/i18n/measure.cpp',
    'source/i18n/msgfmt.cpp',
    'source/i18n/name2uni.cpp',
    'source/i18n/nfrs.cpp',
    'source/i18n/nfrule.cpp',
    'source/i18n/nfsubs.cpp',
    'source/i18n/nortrans.cpp',
    'source/i18n/nultrans.cpp',
    'source/i18n/numfmt.cpp',
    'source/i18n/numsys.cpp',
    'source/i18n/olsontz.cpp',
    'source/i18n/persncal.cpp',
    'source/i18n/plurfmt.cpp',
    'source/i18n/plurrule.cpp',
    'source/i18n/quant.cpp',
    'source/i18n/rbnf.cpp',
    'source/i18n/rbt.cpp',
    'source/i18n/rbt_data.cpp',
    'source/i18n/rbt_pars.cpp',
    'source/i18n/rbt_rule.cpp',
    'source/i18n/rbt_set.cpp',
    'source/i18n/rbtz.cpp',
    'source/i18n/regexcmp.cpp',
    'source/i18n/regexst.cpp',
    'source/i18n/reldtfmt.cpp',
    'source/i18n/rematch.cpp',
    'source/i18n/remtrans.cpp',
    'source/i18n/repattrn.cpp',
    'source/i18n/search.cpp',
    'source/i18n/simpletz.cpp',
    'source/i18n/smpdtfmt.cpp',
    'source/i18n/sortkey.cpp',
    'source/i18n/strmatch.cpp',
    'source/i18n/strrepl.cpp',
    'source/i18n/stsearch.cpp',
    'source/i18n/taiwncal.cpp',
    'source/i18n/tblcoll.cpp',
    'source/i18n/timezone.cpp',
    'source/i18n/titletrn.cpp',
    'source/i18n/tmunit.cpp',
    'source/i18n/tmutamt.cpp',
    'source/i18n/tmutfmt.cpp',
    'source/i18n/tolowtrn.cpp',
    'source/i18n/toupptrn.cpp',
    'source/i18n/translit.cpp',
    'source/i18n/transreg.cpp',
    'source/i18n/tridpars.cpp',
    'source/i18n/tzrule.cpp',
    'source/i18n/tztrans.cpp',
    'source/i18n/ucal.cpp',
    'source/i18n/ucln_in.c',
    'source/i18n/ucol.cpp',
    'source/i18n/ucol_bld.cpp',
    'source/i18n/ucol_cnt.cpp',
    'source/i18n/ucol_elm.cpp',
    'source/i18n/ucol_res.cpp',
    'source/i18n/ucol_sit.cpp',
    'source/i18n/ucol_tok.cpp',
    'source/i18n/ucol_wgt.c',
    'source/i18n/ucoleitr.cpp',
    'source/i18n/ucsdet.cpp',
    'source/i18n/ucurr.cpp',
    'source/i18n/udat.cpp',
    'source/i18n/udatpg.cpp',
    'source/i18n/ulocdata.c',
    'source/i18n/umsg.cpp',
    'source/i18n/unesctrn.cpp',
    'source/i18n/uni2name.cpp',
    'source/i18n/unum.cpp',
    'source/i18n/uregex.cpp',
    'source/i18n/uregexc.cpp',
    'source/i18n/usearch.cpp',
    'source/i18n/uspoof_buildconf.cpp',
    'source/i18n/uspoof_build.cpp',
    'source/i18n/uspoof_buildwsconf.cpp',
    'source/i18n/uspoof.cpp',
    'source/i18n/uspoof_impl.cpp',
    'source/i18n/utmscale.c',
    'source/i18n/utrans.cpp',
    'source/i18n/vtzone.cpp',
    'source/i18n/windtfmt.cpp',
    'source/i18n/winnmfmt.cpp',
    'source/i18n/wintzimpl.cpp',
    'source/i18n/zonemeta.cpp',
    'source/i18n/zstrfmt.cpp',
]

target_files = []
prerequisites = []

_result = []
for infile in input_files:
  if env.compilable(infile):
    if (type(infile) == type('')
        and (infile.startswith('$SRC_DIR/third_party/icu/')
             or not os.path.isabs(env.subst(infile)))):
      # Force files below the build directory by replacing all '..'
      # elements in the path with '__':
      base, ext = os.path.splitext(os.path.normpath(infile))
      base = [d == '..' and '__' or d for d in base.split('/')]
      base = os.path.join(*base)
      object = '${OBJ_DIR}/${COMPONENT_NAME}/${TARGET_NAME}/' + base
      if not infile.startswith('$SRC_DIR/third_party/icu/'):
        infile = '$SRC_DIR/third_party/icu/' + infile
      infile = env.StaticObject(object, infile)[0]
    else:
      infile = env.StaticObject(infile)[0]
  _result.append(infile)
input_files = _result

_outputs = env.GypStaticLibrary('icui18n', input_files)
target_files.extend(_outputs)

gyp_target = env.Alias('icui18n', target_files)
env.Requires(gyp_target, prerequisites)
Return("gyp_target")