Chromium Code Reviews
  | 
| OLD | NEW | 
|---|---|
| (Empty) | |
| 1 # Copyright (c) 2010 The Chromium Authors. All rights reserved. | |
| 2 # Use of this source code is governed by a BSD-style license that can be | |
| 3 # found in the LICENSE file. | |
| 4 | |
| 5 { | |
| 6 'variables': { | |
| 7 'conditions': [ | |
| 8 [ 'OS=="linux" or OS=="freebsd" or OS=="openbsd"', { | |
| 9 # Link to system .so since we already use it due to GTK. | |
| 10 'use_system_libjpeg%': 1, | |
| 11 }, { # OS!="linux" and OS!="freebsd" and OS!="openbsd" | |
| 12 'use_system_libjpeg%': 0, | |
| 13 }], | |
| 14 [ 'OS=="win"', { | |
| 15 'object_suffix': 'obj', | |
| 16 }, { | |
| 17 'object_suffix': 'o', | |
| 18 }], | |
| 19 [ 'OS=="linux" or OS=="freebsd" or OS=="openbsd"', { | |
| 20 # This is a workaround for GYP issue 102. | |
| 
 
Mark Mentovai
2010/11/19 17:12:25
Thanks for adding this comment.
 
Hironori Bono
2010/11/22 09:01:37
It's not a problem. I should have added this comme
 
 | |
| 21 # TODO(hbono): Delete this workaround when this issue is fixed. | |
| 22 'shared_generated_dir': '<(INTERMEDIATE_DIR)/third_party/libjpeg_turbo', | |
| 23 }, { | |
| 24 'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/libjpeg_ turbo', | |
| 25 }], | |
| 26 ], | |
| 27 }, | |
| 28 'conditions': [ | |
| 29 [ 'use_system_libjpeg==0', { | |
| 30 'targets': [ | |
| 31 { | |
| 32 'target_name': 'libjpeg', | |
| 33 'type': '<(library)', | |
| 34 'include_dirs': [ | |
| 35 '.', | |
| 36 ], | |
| 37 'defines': [ | |
| 38 'WITH_SIMD', | |
| 39 ], | |
| 40 'dependencies': [ | |
| 41 'libjpeg_asm', | |
| 42 ], | |
| 43 'sources': [ | |
| 44 'jconfig.h', | |
| 45 'jpeglib.h', | |
| 46 'jpeglibmangler.h', | |
| 47 'jcapimin.c', | |
| 48 'jcapistd.c', | |
| 49 'jccoefct.c', | |
| 50 'jccolor.c', | |
| 51 'jcdctmgr.c', | |
| 52 'jchuff.c', | |
| 53 'jchuff.h', | |
| 54 'jcinit.c', | |
| 55 'jcmainct.c', | |
| 56 'jcmarker.c', | |
| 57 'jcmaster.c', | |
| 58 'jcomapi.c', | |
| 59 'jcparam.c', | |
| 60 'jcphuff.c', | |
| 61 'jcprepct.c', | |
| 62 'jcsample.c', | |
| 63 'jdapimin.c', | |
| 64 'jdapistd.c', | |
| 65 'jdatadst.c', | |
| 66 'jdatasrc.c', | |
| 67 'jdcoefct.c', | |
| 68 'jdcolor.c', | |
| 69 'jdct.h', | |
| 70 'jddctmgr.c', | |
| 71 'jdhuff.c', | |
| 72 'jdhuff.h', | |
| 73 'jdinput.c', | |
| 74 'jdmainct.c', | |
| 75 'jdmarker.c', | |
| 76 'jdmaster.c', | |
| 77 'jdmerge.c', | |
| 78 'jdphuff.c', | |
| 79 'jdpostct.c', | |
| 80 'jdsample.c', | |
| 81 'jerror.c', | |
| 82 'jerror.h', | |
| 83 'jfdctflt.c', | |
| 84 'jfdctfst.c', | |
| 85 'jfdctint.c', | |
| 86 'jidctflt.c', | |
| 87 'jidctfst.c', | |
| 88 'jidctint.c', | |
| 89 'jidctred.c', | |
| 90 'jinclude.h', | |
| 91 'jmemmgr.c', | |
| 92 'jmemnobs.c', | |
| 93 'jmemsys.h', | |
| 94 'jmorecfg.h', | |
| 95 'jpegint.h', | |
| 96 'jquant1.c', | |
| 97 'jquant2.c', | |
| 98 'jutils.c', | |
| 99 'jversion.h', | |
| 100 ], | |
| 101 'direct_dependent_settings': { | |
| 102 'include_dirs': [ | |
| 103 '.', | |
| 104 ], | |
| 105 }, | |
| 106 'conditions': [ | |
| 107 [ 'OS!="win"', {'product_name': 'jpeg_turbo'}], | |
| 108 # Add target-specific source files. | |
| 109 [ 'target_arch=="ia32"', { | |
| 110 'sources': [ | |
| 111 'simd/jsimd_i386.c', | |
| 112 # Object files assembled by the 'libjpeg_asm' project. | |
| 113 '<(shared_generated_dir)/jsimdcpu.<(object_suffix)', | |
| 114 '<(shared_generated_dir)/jccolmmx.<(object_suffix)', | |
| 115 '<(shared_generated_dir)/jdcolmmx.<(object_suffix)', | |
| 116 '<(shared_generated_dir)/jcsammmx.<(object_suffix)', | |
| 117 '<(shared_generated_dir)/jdsammmx.<(object_suffix)', | |
| 118 '<(shared_generated_dir)/jdmermmx.<(object_suffix)', | |
| 119 '<(shared_generated_dir)/jcqntmmx.<(object_suffix)', | |
| 120 '<(shared_generated_dir)/jfmmxfst.<(object_suffix)', | |
| 121 '<(shared_generated_dir)/jfmmxint.<(object_suffix)', | |
| 122 '<(shared_generated_dir)/jimmxred.<(object_suffix)', | |
| 123 '<(shared_generated_dir)/jimmxint.<(object_suffix)', | |
| 124 '<(shared_generated_dir)/jimmxfst.<(object_suffix)', | |
| 125 '<(shared_generated_dir)/jcqnt3dn.<(object_suffix)', | |
| 126 '<(shared_generated_dir)/jf3dnflt.<(object_suffix)', | |
| 127 '<(shared_generated_dir)/ji3dnflt.<(object_suffix)', | |
| 128 '<(shared_generated_dir)/jcqntsse.<(object_suffix)', | |
| 129 '<(shared_generated_dir)/jfsseflt.<(object_suffix)', | |
| 130 '<(shared_generated_dir)/jisseflt.<(object_suffix)', | |
| 131 '<(shared_generated_dir)/jccolss2.<(object_suffix)', | |
| 132 '<(shared_generated_dir)/jdcolss2.<(object_suffix)', | |
| 133 '<(shared_generated_dir)/jcsamss2.<(object_suffix)', | |
| 134 '<(shared_generated_dir)/jdsamss2.<(object_suffix)', | |
| 135 '<(shared_generated_dir)/jdmerss2.<(object_suffix)', | |
| 136 '<(shared_generated_dir)/jcqnts2i.<(object_suffix)', | |
| 137 '<(shared_generated_dir)/jfss2fst.<(object_suffix)', | |
| 138 '<(shared_generated_dir)/jfss2int.<(object_suffix)', | |
| 139 '<(shared_generated_dir)/jiss2red.<(object_suffix)', | |
| 140 '<(shared_generated_dir)/jiss2int.<(object_suffix)', | |
| 141 '<(shared_generated_dir)/jiss2fst.<(object_suffix)', | |
| 142 '<(shared_generated_dir)/jcqnts2f.<(object_suffix)', | |
| 143 '<(shared_generated_dir)/jiss2flt.<(object_suffix)', | |
| 144 ], | |
| 145 }], | |
| 146 [ 'target_arch=="x64"', { | |
| 147 'sources': [ | |
| 148 'simd/jsimd_x86_64.c', | |
| 149 # Object files assembled by the 'libjpeg_asm' project. | |
| 150 '<(shared_generated_dir)/jfsseflt-64.<(object_suffix)', | |
| 151 '<(shared_generated_dir)/jccolss2-64.<(object_suffix)', | |
| 152 '<(shared_generated_dir)/jdcolss2-64.<(object_suffix)', | |
| 153 '<(shared_generated_dir)/jcsamss2-64.<(object_suffix)', | |
| 154 '<(shared_generated_dir)/jdsamss2-64.<(object_suffix)', | |
| 155 '<(shared_generated_dir)/jdmerss2-64.<(object_suffix)', | |
| 156 '<(shared_generated_dir)/jcqnts2i-64.<(object_suffix)', | |
| 157 '<(shared_generated_dir)/jfss2fst-64.<(object_suffix)', | |
| 158 '<(shared_generated_dir)/jfss2int-64.<(object_suffix)', | |
| 159 '<(shared_generated_dir)/jiss2red-64.<(object_suffix)', | |
| 160 '<(shared_generated_dir)/jiss2int-64.<(object_suffix)', | |
| 161 '<(shared_generated_dir)/jiss2fst-64.<(object_suffix)', | |
| 162 '<(shared_generated_dir)/jcqnts2f-64.<(object_suffix)', | |
| 163 '<(shared_generated_dir)/jiss2flt-64.<(object_suffix)', | |
| 164 ], | |
| 165 }], | |
| 166 ], | |
| 167 }, | |
| 168 { | |
| 169 # A project that assembles asm files and creates object files. | |
| 170 'target_name': 'libjpeg_asm', | |
| 171 'type': 'none', | |
| 172 'conditions': [ | |
| 173 # Add platform-dependent source files. | |
| 174 [ 'target_arch=="ia32"', { | |
| 175 'sources': [ | |
| 176 # The asm files for ia32. | |
| 177 'simd/jsimdcpu.asm', | |
| 178 'simd/jccolmmx.asm', | |
| 179 'simd/jdcolmmx.asm', | |
| 180 'simd/jcsammmx.asm', | |
| 181 'simd/jdsammmx.asm', | |
| 182 'simd/jdmermmx.asm', | |
| 183 'simd/jcqntmmx.asm', | |
| 184 'simd/jfmmxfst.asm', | |
| 185 'simd/jfmmxint.asm', | |
| 186 'simd/jimmxred.asm', | |
| 187 'simd/jimmxint.asm', | |
| 188 'simd/jimmxfst.asm', | |
| 189 'simd/jcqnt3dn.asm', | |
| 190 'simd/jf3dnflt.asm', | |
| 191 'simd/ji3dnflt.asm', | |
| 192 'simd/jcqntsse.asm', | |
| 193 'simd/jfsseflt.asm', | |
| 194 'simd/jisseflt.asm', | |
| 195 'simd/jccolss2.asm', | |
| 196 'simd/jdcolss2.asm', | |
| 197 'simd/jcsamss2.asm', | |
| 198 'simd/jdsamss2.asm', | |
| 199 'simd/jdmerss2.asm', | |
| 200 'simd/jcqnts2i.asm', | |
| 201 'simd/jfss2fst.asm', | |
| 202 'simd/jfss2int.asm', | |
| 203 'simd/jiss2red.asm', | |
| 204 'simd/jiss2int.asm', | |
| 205 'simd/jiss2fst.asm', | |
| 206 'simd/jcqnts2f.asm', | |
| 207 'simd/jiss2flt.asm', | |
| 208 ], | |
| 209 }], | |
| 210 [ 'target_arch=="x64"', { | |
| 211 'sources': [ | |
| 212 # The asm files for x64. | |
| 213 'simd/jfsseflt-64.asm', | |
| 214 'simd/jccolss2-64.asm', | |
| 215 'simd/jdcolss2-64.asm', | |
| 216 'simd/jcsamss2-64.asm', | |
| 217 'simd/jdsamss2-64.asm', | |
| 218 'simd/jdmerss2-64.asm', | |
| 219 'simd/jcqnts2i-64.asm', | |
| 220 'simd/jfss2fst-64.asm', | |
| 221 'simd/jfss2int-64.asm', | |
| 222 'simd/jiss2red-64.asm', | |
| 223 'simd/jiss2int-64.asm', | |
| 224 'simd/jiss2fst-64.asm', | |
| 225 'simd/jcqnts2f-64.asm', | |
| 226 'simd/jiss2flt-64.asm', | |
| 227 ], | |
| 228 }], | |
| 229 | |
| 230 # Build rules for an asm file. | |
| 231 # On Windows, we use the precompiled yasm binary. On Linux and Mac, | |
| 232 # we build yasm and use it as ffmpeg does. | |
| 233 [ 'OS=="win"', { | |
| 234 'variables': { | |
| 235 'yasm_path': '../yasm/binaries/win/yasm<(EXECUTABLE_SUFFIX)', | |
| 236 }, | |
| 237 'rules': [ | |
| 238 { | |
| 239 'rule_name': 'assemble', | |
| 240 'extension': 'asm', | |
| 241 'inputs': [ '<(yasm_path)', ], | |
| 242 'outputs': [ | |
| 243 '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix) ', | |
| 244 ], | |
| 245 'action': [ | |
| 246 '<(yasm_path)', | |
| 247 '-fwin32', | |
| 248 '-DWIN32', | |
| 249 '-DMSVC', | |
| 250 '-Iwin/', | |
| 251 '-Isimd/', | |
| 252 '-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_s uffix)', | |
| 253 '<(RULE_INPUT_PATH)', | |
| 254 ], | |
| 255 'process_outputs_as_sources': 0, | |
| 256 'message': 'Building <(RULE_INPUT_ROOT).<(object_suffix)', | |
| 257 }, | |
| 258 ], | |
| 259 }], | |
| 260 [ 'OS=="mac"', { | |
| 261 'dependencies': [ | |
| 262 '../yasm/yasm.gyp:yasm#host', | |
| 
 
Mark Mentovai
2010/11/19 17:12:25
Have you tested this on the Mac? I wasn’t involved
 
Hironori Bono
2010/11/22 09:01:37
Yes, I have verified we can build libjpeg-turbo wi
 
 | |
| 263 ], | |
| 264 'variables': { | |
| 265 'yasm_path': '<(PRODUCT_DIR)/yasm', | |
| 266 }, | |
| 267 'rules': [ | |
| 268 { | |
| 269 'rule_name': 'assemble', | |
| 270 'extension': 'asm', | |
| 271 'inputs': [ '<(yasm_path)', ], | |
| 272 'outputs': [ | |
| 273 '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix) ', | |
| 274 ], | |
| 275 'action': [ | |
| 276 '<(yasm_path)', | |
| 277 '-fmacho', | |
| 278 '-DMACHO', | |
| 279 '-Imac/', | |
| 280 '-Isimd/', | |
| 281 '-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_s uffix)', | |
| 282 '<(RULE_INPUT_PATH)', | |
| 283 ], | |
| 284 'process_outputs_as_sources': 0, | |
| 285 'message': 'Building <(RULE_INPUT_ROOT).<(object_suffix)', | |
| 286 }, | |
| 287 ], | |
| 288 }], | |
| 289 [ 'OS=="linux"', { | |
| 290 'dependencies': [ | |
| 291 '../yasm/yasm.gyp:yasm#host', | |
| 292 ], | |
| 293 'variables': { | |
| 294 'yasm_path': '<(PRODUCT_DIR)/yasm', | |
| 295 'conditions': [ | |
| 296 [ 'target_arch=="ia32"', { | |
| 297 'yasm_format': '-felf', | |
| 298 'yasm_flag': '-D__X86__', | |
| 299 }, { | |
| 300 'yasm_format': '-felf64', | |
| 301 'yasm_flag': '-D__x86_64__', | |
| 302 }], | |
| 303 ], | |
| 304 }, | |
| 305 'rules': [ | |
| 306 { | |
| 307 'rule_name': 'assemble', | |
| 308 'extension': 'asm', | |
| 309 'inputs': [ '<(yasm_path)', ], | |
| 310 'outputs': [ | |
| 311 '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix) ', | |
| 312 ], | |
| 313 'action': [ | |
| 314 '<(yasm_path)', | |
| 315 '<(yasm_format)', | |
| 316 '-DELF', | |
| 317 '<(yasm_flag)', | |
| 318 '-Ilinux/', | |
| 319 '-Isimd/', | |
| 320 '-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_s uffix)', | |
| 321 '<(RULE_INPUT_PATH)', | |
| 322 ], | |
| 323 'process_outputs_as_sources': 0, | |
| 324 'message': 'Building <(RULE_INPUT_ROOT).<(object_suffix)', | |
| 325 }, | |
| 326 ], | |
| 327 }], | |
| 328 ], | |
| 329 }, | |
| 330 ], | |
| 331 }, { # else: use_system_libjpeg != 0 | |
| 332 'targets': [ | |
| 333 { | |
| 334 'target_name': 'libjpeg', | |
| 335 'type': 'settings', | |
| 336 'direct_dependent_settings': { | |
| 337 'defines': [ | |
| 338 'USE_SYSTEM_LIBJPEG', | |
| 339 ], | |
| 340 }, | |
| 341 'link_settings': { | |
| 342 'libraries': [ | |
| 343 '-ljpeg', | |
| 344 ], | |
| 345 }, | |
| 346 }, | |
| 347 ], | |
| 348 }], | |
| 349 ], | |
| 350 } | |
| 351 | |
| 352 # Local Variables: | |
| 353 # tab-width:2 | |
| 354 # indent-tabs-mode:nil | |
| 355 # End: | |
| 356 # vim: set expandtab tabstop=2 shiftwidth=2: | |
| OLD | NEW |