|
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 |