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