OLD | NEW |
1 # Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 { | 5 { |
6 'variables': { | 6 'variables': { |
7 'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/libjpeg_turb
o', | 7 'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/libjpeg_turb
o', |
8 'conditions': [ | 8 'conditions': [ |
9 ['chromeos==1 or OS=="freebsd" or OS=="openbsd"', { | 9 [ 'chromeos==1 or OS=="freebsd" or OS=="openbsd"', { |
10 # Link to system .so since we already use it due to GTK. | 10 # Link to system .so since we already use it due to GTK. |
11 # See crbug.com/30288 and 31427 for why we skip OS=="linux" above. | 11 # See crbug.com/30288 and 31427 for why we skip OS=="linux" above. |
12 'use_system_libjpeg%': 1, | 12 'use_system_libjpeg%': 1, |
13 }, { # chromeos!=1 and OS!="freebsd" and OS!="openbsd" | 13 }, { # chromeos!=1 and OS!="freebsd" and OS!="openbsd" |
14 'use_system_libjpeg%': 0, | 14 'use_system_libjpeg%': 0, |
15 }], | 15 }], |
16 [ 'OS=="win"', { | 16 [ 'OS=="win"', { |
17 'object_suffix': 'obj', | 17 'object_suffix': 'obj', |
18 }, { | 18 }, { |
19 'object_suffix': 'o', | 19 'object_suffix': 'o', |
20 }], | 20 }], |
21 ], | 21 ], |
22 }, | 22 }, |
23 'conditions': [ | 23 'conditions': [ |
24 [ 'use_system_libjpeg==0', { | 24 [ 'use_system_libjpeg==0', { |
25 'targets': [ | 25 'targets': [ |
26 { | 26 { |
27 'target_name': 'libjpeg', | 27 'target_name': 'libjpeg', |
28 'type': '<(library)', | 28 'type': '<(library)', |
29 'include_dirs': [ | 29 'include_dirs': [ |
30 '.', | 30 '.', |
31 ], | 31 ], |
32 'defines': [ | 32 'defines': [ |
33 'WITH_SIMD', | 33 'WITH_SIMD', |
34 ], | 34 ], |
35 'dependencies': [ | |
36 'libjpeg_asm', | |
37 ], | |
38 'sources': [ | 35 'sources': [ |
39 'jconfig.h', | 36 'jconfig.h', |
40 'jpeglib.h', | 37 'jpeglib.h', |
41 'jpeglibmangler.h', | 38 'jpeglibmangler.h', |
42 'jcapimin.c', | 39 'jcapimin.c', |
43 'jcapistd.c', | 40 'jcapistd.c', |
44 'jccoefct.c', | 41 'jccoefct.c', |
45 'jccolor.c', | 42 'jccolor.c', |
46 'jcdctmgr.c', | 43 'jcdctmgr.c', |
47 'jchuff.c', | 44 'jchuff.c', |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 'include_dirs': [ | 94 'include_dirs': [ |
98 '.', | 95 '.', |
99 ], | 96 ], |
100 }, | 97 }, |
101 'conditions': [ | 98 'conditions': [ |
102 [ 'OS!="win"', {'product_name': 'jpeg_turbo'}], | 99 [ 'OS!="win"', {'product_name': 'jpeg_turbo'}], |
103 # Add target-specific source files. | 100 # Add target-specific source files. |
104 [ 'target_arch=="ia32"', { | 101 [ 'target_arch=="ia32"', { |
105 'sources': [ | 102 'sources': [ |
106 'simd/jsimd_i386.c', | 103 'simd/jsimd_i386.c', |
107 # Object files assembled by the 'libjpeg_asm' project. | |
108 '<(shared_generated_dir)/jsimdcpu.<(object_suffix)', | |
109 '<(shared_generated_dir)/jccolmmx.<(object_suffix)', | |
110 '<(shared_generated_dir)/jdcolmmx.<(object_suffix)', | |
111 '<(shared_generated_dir)/jcsammmx.<(object_suffix)', | |
112 '<(shared_generated_dir)/jdsammmx.<(object_suffix)', | |
113 '<(shared_generated_dir)/jdmermmx.<(object_suffix)', | |
114 '<(shared_generated_dir)/jcqntmmx.<(object_suffix)', | |
115 '<(shared_generated_dir)/jfmmxfst.<(object_suffix)', | |
116 '<(shared_generated_dir)/jfmmxint.<(object_suffix)', | |
117 '<(shared_generated_dir)/jimmxred.<(object_suffix)', | |
118 '<(shared_generated_dir)/jimmxint.<(object_suffix)', | |
119 '<(shared_generated_dir)/jimmxfst.<(object_suffix)', | |
120 '<(shared_generated_dir)/jcqnt3dn.<(object_suffix)', | |
121 '<(shared_generated_dir)/jf3dnflt.<(object_suffix)', | |
122 '<(shared_generated_dir)/ji3dnflt.<(object_suffix)', | |
123 '<(shared_generated_dir)/jcqntsse.<(object_suffix)', | |
124 '<(shared_generated_dir)/jfsseflt.<(object_suffix)', | |
125 '<(shared_generated_dir)/jisseflt.<(object_suffix)', | |
126 '<(shared_generated_dir)/jccolss2.<(object_suffix)', | |
127 '<(shared_generated_dir)/jdcolss2.<(object_suffix)', | |
128 '<(shared_generated_dir)/jcsamss2.<(object_suffix)', | |
129 '<(shared_generated_dir)/jdsamss2.<(object_suffix)', | |
130 '<(shared_generated_dir)/jdmerss2.<(object_suffix)', | |
131 '<(shared_generated_dir)/jcqnts2i.<(object_suffix)', | |
132 '<(shared_generated_dir)/jfss2fst.<(object_suffix)', | |
133 '<(shared_generated_dir)/jfss2int.<(object_suffix)', | |
134 '<(shared_generated_dir)/jiss2red.<(object_suffix)', | |
135 '<(shared_generated_dir)/jiss2int.<(object_suffix)', | |
136 '<(shared_generated_dir)/jiss2fst.<(object_suffix)', | |
137 '<(shared_generated_dir)/jcqnts2f.<(object_suffix)', | |
138 '<(shared_generated_dir)/jiss2flt.<(object_suffix)', | |
139 ], | |
140 }], | |
141 [ 'target_arch=="x64"', { | |
142 'sources': [ | |
143 'simd/jsimd_x86_64.c', | |
144 # Object files assembled by the 'libjpeg_asm' project. | |
145 '<(shared_generated_dir)/jfsseflt-64.<(object_suffix)', | |
146 '<(shared_generated_dir)/jccolss2-64.<(object_suffix)', | |
147 '<(shared_generated_dir)/jdcolss2-64.<(object_suffix)', | |
148 '<(shared_generated_dir)/jcsamss2-64.<(object_suffix)', | |
149 '<(shared_generated_dir)/jdsamss2-64.<(object_suffix)', | |
150 '<(shared_generated_dir)/jdmerss2-64.<(object_suffix)', | |
151 '<(shared_generated_dir)/jcqnts2i-64.<(object_suffix)', | |
152 '<(shared_generated_dir)/jfss2fst-64.<(object_suffix)', | |
153 '<(shared_generated_dir)/jfss2int-64.<(object_suffix)', | |
154 '<(shared_generated_dir)/jiss2red-64.<(object_suffix)', | |
155 '<(shared_generated_dir)/jiss2int-64.<(object_suffix)', | |
156 '<(shared_generated_dir)/jiss2fst-64.<(object_suffix)', | |
157 '<(shared_generated_dir)/jcqnts2f-64.<(object_suffix)', | |
158 '<(shared_generated_dir)/jiss2flt-64.<(object_suffix)', | |
159 ], | |
160 }], | |
161 ], | |
162 }, | |
163 { | |
164 # A project that assembles asm files and creates object files. | |
165 'target_name': 'libjpeg_asm', | |
166 'type': 'none', | |
167 'conditions': [ | |
168 # Add platform-dependent source files. | |
169 [ 'target_arch=="ia32"', { | |
170 'sources': [ | |
171 # The asm files for ia32. | |
172 'simd/jsimdcpu.asm', | 104 'simd/jsimdcpu.asm', |
173 'simd/jccolmmx.asm', | 105 'simd/jccolmmx.asm', |
174 'simd/jdcolmmx.asm', | 106 'simd/jdcolmmx.asm', |
175 'simd/jcsammmx.asm', | 107 'simd/jcsammmx.asm', |
176 'simd/jdsammmx.asm', | 108 'simd/jdsammmx.asm', |
177 'simd/jdmermmx.asm', | 109 'simd/jdmermmx.asm', |
178 'simd/jcqntmmx.asm', | 110 'simd/jcqntmmx.asm', |
179 'simd/jfmmxfst.asm', | 111 'simd/jfmmxfst.asm', |
180 'simd/jfmmxint.asm', | 112 'simd/jfmmxint.asm', |
181 'simd/jimmxred.asm', | 113 'simd/jimmxred.asm', |
(...skipping 15 matching lines...) Expand all Loading... |
197 'simd/jfss2int.asm', | 129 'simd/jfss2int.asm', |
198 'simd/jiss2red.asm', | 130 'simd/jiss2red.asm', |
199 'simd/jiss2int.asm', | 131 'simd/jiss2int.asm', |
200 'simd/jiss2fst.asm', | 132 'simd/jiss2fst.asm', |
201 'simd/jcqnts2f.asm', | 133 'simd/jcqnts2f.asm', |
202 'simd/jiss2flt.asm', | 134 'simd/jiss2flt.asm', |
203 ], | 135 ], |
204 }], | 136 }], |
205 [ 'target_arch=="x64"', { | 137 [ 'target_arch=="x64"', { |
206 'sources': [ | 138 'sources': [ |
207 # The asm files for x64. | 139 'simd/jsimd_x86_64.c', |
208 'simd/jfsseflt-64.asm', | 140 'simd/jfsseflt-64.asm', |
209 'simd/jccolss2-64.asm', | 141 'simd/jccolss2-64.asm', |
210 'simd/jdcolss2-64.asm', | 142 'simd/jdcolss2-64.asm', |
211 'simd/jcsamss2-64.asm', | 143 'simd/jcsamss2-64.asm', |
212 'simd/jdsamss2-64.asm', | 144 'simd/jdsamss2-64.asm', |
213 'simd/jdmerss2-64.asm', | 145 'simd/jdmerss2-64.asm', |
214 'simd/jcqnts2i-64.asm', | 146 'simd/jcqnts2i-64.asm', |
215 'simd/jfss2fst-64.asm', | 147 'simd/jfss2fst-64.asm', |
216 'simd/jfss2int-64.asm', | 148 'simd/jfss2int-64.asm', |
217 'simd/jiss2red-64.asm', | 149 'simd/jiss2red-64.asm', |
218 'simd/jiss2int-64.asm', | 150 'simd/jiss2int-64.asm', |
219 'simd/jiss2fst-64.asm', | 151 'simd/jiss2fst-64.asm', |
220 'simd/jcqnts2f-64.asm', | 152 'simd/jcqnts2f-64.asm', |
221 'simd/jiss2flt-64.asm', | 153 'simd/jiss2flt-64.asm', |
222 ], | 154 ], |
223 }], | 155 }], |
224 | 156 |
225 # Build rules for an asm file. | 157 # Build rules for an asm file. |
226 # On Windows, we use the precompiled yasm binary. On Linux and Mac, | 158 # On Windows, we use the precompiled yasm binary. On Linux and Mac, |
227 # we build yasm and use it as ffmpeg does. | 159 # we build yasm and use it as ffmpeg does. |
228 [ 'OS=="win"', { | 160 [ 'OS=="win"', { |
229 'variables': { | 161 'variables': { |
230 'yasm_path': '../yasm/binaries/win/yasm<(EXECUTABLE_SUFFIX)', | 162 'yasm_path': '../yasm/binaries/win/yasm<(EXECUTABLE_SUFFIX)', |
231 }, | 163 }, |
232 'rules': [ | 164 'rules': [ |
233 { | 165 { |
234 'rule_name': 'assemble', | 166 'rule_name': 'assemble', |
235 'extension': 'asm', | 167 'extension': 'asm', |
236 'inputs': [ '<(yasm_path)', ], | 168 'inputs': [ '<(RULE_INPUT_PATH)', ], |
237 'outputs': [ | 169 'outputs': [ |
238 '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix)
', | 170 '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix)
', |
239 ], | 171 ], |
240 'action': [ | 172 'action': [ |
241 '<(yasm_path)', | 173 '<(yasm_path)', |
242 '-fwin32', | 174 '-fwin32', |
243 '-DWIN32', | 175 '-DWIN32', |
244 '-DMSVC', | 176 '-DMSVC', |
| 177 '-DRGBX_FILLER_0XFF', |
245 '-Iwin/', | 178 '-Iwin/', |
246 '-Isimd/', | 179 '-Isimd/', |
247 '-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_s
uffix)', | 180 '-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_s
uffix)', |
248 '<(RULE_INPUT_PATH)', | 181 '<(RULE_INPUT_PATH)', |
249 ], | 182 ], |
250 'process_outputs_as_sources': 0, | 183 'process_outputs_as_sources': 1, |
251 'message': 'Building <(RULE_INPUT_ROOT).<(object_suffix)', | 184 'message': 'Building <(RULE_INPUT_ROOT).<(object_suffix)', |
252 }, | 185 }, |
253 ], | 186 ], |
254 }], | 187 }], |
255 [ 'OS=="mac"', { | 188 [ 'OS=="mac"', { |
256 'dependencies': [ | 189 'dependencies': [ |
257 '../yasm/yasm.gyp:yasm#host', | 190 '../yasm/yasm.gyp:yasm#host', |
258 ], | 191 ], |
259 'variables': { | 192 'variables': { |
260 'yasm_path': '<(PRODUCT_DIR)/yasm', | 193 'yasm_path': '<(PRODUCT_DIR)/yasm', |
261 }, | 194 }, |
262 'rules': [ | 195 'rules': [ |
263 { | 196 { |
264 'rule_name': 'assemble', | 197 'rule_name': 'assemble', |
265 'extension': 'asm', | 198 'extension': 'asm', |
266 'inputs': [ '<(yasm_path)', ], | 199 'inputs': [ '<(yasm_path)', ], |
267 'outputs': [ | 200 'outputs': [ |
268 '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix)
', | 201 '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix)
', |
269 ], | 202 ], |
270 'action': [ | 203 'action': [ |
271 '<(yasm_path)', | 204 '<(yasm_path)', |
272 '-fmacho', | 205 '-fmacho', |
273 '-DMACHO', | 206 '-DMACHO', |
| 207 '-DRGBX_FILLER_0XFF', |
274 '-Imac/', | 208 '-Imac/', |
275 '-Isimd/', | 209 '-Isimd/', |
276 '-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_s
uffix)', | 210 '-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_s
uffix)', |
277 '<(RULE_INPUT_PATH)', | 211 '<(RULE_INPUT_PATH)', |
278 ], | 212 ], |
279 'process_outputs_as_sources': 0, | 213 'process_outputs_as_sources': 1, |
280 'message': 'Building <(RULE_INPUT_ROOT).<(object_suffix)', | 214 'message': 'Building <(RULE_INPUT_ROOT).<(object_suffix)', |
281 }, | 215 }, |
282 ], | 216 ], |
283 }], | 217 }], |
284 [ 'OS=="linux"', { | 218 [ 'OS=="linux"', { |
285 'dependencies': [ | 219 'dependencies': [ |
286 '../yasm/yasm.gyp:yasm#host', | 220 '../yasm/yasm.gyp:yasm#host', |
287 ], | 221 ], |
288 'variables': { | 222 'variables': { |
289 'yasm_path': '<(PRODUCT_DIR)/yasm', | 223 'yasm_path': '<(PRODUCT_DIR)/yasm', |
290 'conditions': [ | 224 'conditions': [ |
291 [ 'target_arch=="ia32"', { | 225 [ 'target_arch=="ia32"', { |
292 'yasm_format': '-felf', | 226 'yasm_format': '-felf', |
293 'yasm_flag': '-D__X86__', | 227 'yasm_flag': '-D__X86__', |
294 }, { | 228 }, { |
295 'yasm_format': '-felf64', | 229 'yasm_format': '-felf64', |
296 'yasm_flag': '-D__x86_64__', | 230 'yasm_flag': '-D__x86_64__', |
297 }], | 231 }], |
298 ], | 232 ], |
299 }, | 233 }, |
300 'rules': [ | 234 'rules': [ |
301 { | 235 { |
302 'rule_name': 'assemble', | 236 'rule_name': 'assemble', |
303 'extension': 'asm', | 237 'extension': 'asm', |
304 'inputs': [ '<(yasm_path)', ], | 238 'inputs': [ '<(RULE_INPUT_PATH)', ], |
305 'outputs': [ | 239 'outputs': [ |
306 '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix)
', | 240 '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix)
', |
307 ], | 241 ], |
308 'action': [ | 242 'action': [ |
309 '<(yasm_path)', | 243 '<(yasm_path)', |
310 '<(yasm_format)', | 244 '<(yasm_format)', |
311 '-DELF', | 245 '-DELF', |
312 '<(yasm_flag)', | 246 '<(yasm_flag)', |
| 247 '-DRGBX_FILLER_0XFF', |
313 '-Ilinux/', | 248 '-Ilinux/', |
314 '-Isimd/', | 249 '-Isimd/', |
315 '-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_s
uffix)', | 250 '-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_s
uffix)', |
316 '<(RULE_INPUT_PATH)', | 251 '<(RULE_INPUT_PATH)', |
317 ], | 252 ], |
318 'process_outputs_as_sources': 0, | 253 'process_outputs_as_sources': 1, |
319 'message': 'Building <(RULE_INPUT_ROOT).<(object_suffix)', | 254 'message': 'Building <(RULE_INPUT_ROOT).<(object_suffix)', |
320 }, | 255 }, |
321 ], | 256 ], |
322 }], | 257 }], |
323 ], | 258 ], |
324 }, | 259 }, |
325 ], | 260 ], |
326 }, { # else: use_system_libjpeg != 0 | 261 }, { # else: use_system_libjpeg != 0 |
327 'targets': [ | 262 'targets': [ |
328 { | 263 { |
(...skipping 13 matching lines...) Expand all Loading... |
342 ], | 277 ], |
343 }], | 278 }], |
344 ], | 279 ], |
345 } | 280 } |
346 | 281 |
347 # Local Variables: | 282 # Local Variables: |
348 # tab-width:2 | 283 # tab-width:2 |
349 # indent-tabs-mode:nil | 284 # indent-tabs-mode:nil |
350 # End: | 285 # End: |
351 # vim: set expandtab tabstop=2 shiftwidth=2: | 286 # vim: set expandtab tabstop=2 shiftwidth=2: |
OLD | NEW |