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