OLD | NEW |
---|---|
(Empty) | |
1 # Copyright (c) 2012 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 'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/libjpeg-turb o', | |
8 'conditions': [ | |
9 [ 'skia_os == "win"', { | |
10 'object_suffix': 'obj', | |
11 }, { | |
12 'object_suffix': 'o', | |
13 }], | |
14 ], | |
15 }, | |
16 'targets': [ | |
17 { | |
18 'target_name': 'libjpeg-turbo', | |
19 'type': 'static_library', | |
20 'include_dirs': [ | |
21 '../third_party/libjpeg-turbo/libjpeg-turbo-code/', | |
22 ], | |
23 'defines': [ | |
24 'WITH_SIMD', | |
25 'MOTION_JPEG_SUPPORTED', | |
26 'NO_GETENV', | |
27 ], | |
28 'cflags': [ | |
29 '-w', # supresses warnings | |
30 ], | |
31 'sources': [ | |
32 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jaricom.c', | |
33 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcapimin.c', | |
34 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcapistd.c', | |
35 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcarith.c', | |
36 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jccoefct.c', | |
37 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jccolor.c', | |
38 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcdctmgr.c', | |
39 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jchuff.c', | |
40 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jchuff.h', | |
41 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcinit.c', | |
42 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcmainct.c', | |
43 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcmarker.c', | |
44 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcmaster.c', | |
45 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcomapi.c', | |
46 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jconfig.h', | |
47 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jconfigint.h', | |
48 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcparam.c', | |
49 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcphuff.c', | |
50 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcprepct.c', | |
51 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jcsample.c', | |
52 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdapimin.c', | |
53 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdapistd.c', | |
54 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdarith.c', | |
55 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdcoefct.c', | |
56 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdcolor.c', | |
57 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdct.h', | |
58 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jddctmgr.c', | |
59 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdhuff.c', | |
60 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdhuff.h', | |
61 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdinput.c', | |
62 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdmainct.c', | |
63 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdmarker.c', | |
64 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdmaster.c', | |
65 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdmerge.c', | |
66 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdphuff.c', | |
67 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdpostct.c', | |
68 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jdsample.c', | |
69 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jerror.c', | |
70 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jerror.h', | |
71 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jfdctflt.c', | |
72 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jfdctfst.c', | |
73 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jfdctint.c', | |
74 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jidctflt.c', | |
75 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jidctfst.c', | |
76 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jidctint.c', | |
77 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jidctred.c', | |
78 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jinclude.h', | |
79 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jmemmgr.c', | |
80 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jmemnobs.c', | |
81 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jmemsys.h', | |
82 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jmorecfg.h', | |
83 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jpegint.h', | |
84 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jpeglib.h', | |
85 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jpeglibmangler.h', | |
86 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jquant1.c', | |
87 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jquant2.c', | |
88 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jutils.c', | |
89 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jversion.h', | |
90 ], | |
91 'direct_dependent_settings': { | |
92 'include_dirs': [ | |
93 '../third_party/libjpeg-turbo/libjpeg-turbo-code/', | |
94 ], | |
95 }, | |
96 'msvs_disabled_warnings': [4018, 4101], | |
97 # VS2010 does not correctly incrementally link obj files generated | |
98 # from asm files. This flag disables UseLibraryDependencyInputs to | |
99 # avoid this problem. | |
100 'msvs_2010_disable_uldi_when_referenced': 1, | |
101 | |
102 # Add target-specific source files. | |
103 'conditions': [ | |
104 [ 'skia_arch_type == "x86"', { | |
105 'sources': [ | |
106 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_i386.c', | |
107 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jccolor-mmx.as m', | |
108 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jccolor-sse2.a sm', | |
109 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jcgray-mmx.asm ', | |
110 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jcgray-sse2.as m', | |
111 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jcsample-mmx.a sm', | |
112 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jcsample-sse2. asm', | |
113 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdcolor-mmx.as m', | |
114 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdcolor-sse2.a sm', | |
115 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdmerge-mmx.as m', | |
116 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdmerge-sse2.a sm', | |
117 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdsample-mmx.a sm', | |
118 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdsample-sse2. asm', | |
119 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctflt-3dn.a sm', | |
120 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctflt-sse.a sm', | |
121 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctfst-mmx.a sm', | |
122 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctfst-sse2. asm', | |
123 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctint-mmx.a sm', | |
124 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctint-sse2. asm', | |
125 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctflt-3dn.a sm', | |
126 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctflt-sse2. asm', | |
127 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctflt-sse.a sm', | |
128 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctfst-mmx.a sm', | |
129 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctfst-sse2. asm', | |
130 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctint-mmx.a sm', | |
131 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctint-sse2. asm', | |
132 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctred-mmx.a sm', | |
133 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctred-sse2. asm', | |
134 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jquant-3dn.asm ', | |
135 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jquantf-sse2.a sm', | |
136 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jquanti-sse2.a sm', | |
137 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jquant-mmx.asm ', | |
138 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jquant-sse.asm ', | |
139 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimdcpu.asm', | |
140 ], | |
141 }], | |
142 [ 'skia_arch_type == "x86_64"', { | |
143 'sources': [ | |
144 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_x86_64.c ', | |
145 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jccolor-sse2-6 4.asm', | |
146 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jcgray-sse2-64 .asm', | |
147 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jcsample-sse2- 64.asm', | |
148 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdcolor-sse2-6 4.asm', | |
149 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdmerge-sse2-6 4.asm', | |
150 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jdsample-sse2- 64.asm', | |
151 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctflt-sse-6 4.asm', | |
152 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctfst-sse2- 64.asm', | |
153 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jfdctint-sse2- 64.asm', | |
154 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctflt-sse2- 64.asm', | |
155 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctfst-sse2- 64.asm', | |
156 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctint-sse2- 64.asm', | |
157 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jidctred-sse2- 64.asm', | |
158 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jquantf-sse2-6 4.asm', | |
159 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jquanti-sse2-6 4.asm', | |
160 ], | |
161 }], | |
162 [ 'skia_arch_type == "arm"', { | |
163 'conditions': [ | |
164 [ 'arm_version >= 7 and (arm_neon == 1 or arm_neon_optional == 1)', { | |
165 'sources': [ | |
166 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_arm. c', | |
167 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_arm_ neon.S', | |
168 ], | |
169 }, { | |
170 'sources': [ | |
171 '../third_party/libjpeg-turbo/libjpeg-turbo-code/jsimd_none.c', | |
172 ], | |
173 }] | |
174 ], | |
175 }], | |
176 [ 'skia_arch_type == "arm64"', { | |
177 'sources': [ | |
178 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_arm64.c' , | |
179 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_arm64_ne on.S', | |
180 ], | |
181 }], | |
182 [ 'skia_arch_type == "mips"', { | |
183 'sources': [ | |
184 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_mips.c', | |
185 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_mips_dsp r2_asm.h', | |
186 '../third_party/libjpeg-turbo/libjpeg-turbo-code/simd/jsimd_mips_dsp r2.S', | |
187 ], | |
188 }], | |
189 | |
190 # Build rules for an asm file. | |
scroggo
2015/06/23 15:05:51
This is messy... Is this the way Chromium does it?
msarett
2015/06/23 17:47:43
Yes this is messy - it's been quite frustrating.
| |
191 # On Windows, we use the precompiled yasm binary. | |
192 # On Linux, we build our patched yasm and use it except when use_system_ yasm is 1. | |
193 # On Mac, we always build our patched yasm and use it. | |
194 [ 'skia_os == "win"', { | |
195 'variables': { | |
196 'yasm_path': '../third_party/externals/yasm/binaries/win/yasm.exe', | |
197 'conditions': [ | |
198 [ 'skia_arch_type == "x86"', { | |
199 'yasm_format': '-fwin32', | |
200 'yasm_flags': [ | |
201 '-D__x86__', | |
202 '-DWIN32', | |
203 '-DMSVC', | |
204 '-Iwin/' | |
205 ], | |
206 }, { | |
207 'yasm_format': '-fwin64', | |
208 'yasm_flags': [ | |
209 '-D__x86_64__', | |
210 '-DWIN64', | |
211 '-DMSVC', | |
212 '-Iwin/' | |
213 ], | |
214 }], | |
215 ], | |
216 }, | |
217 }], | |
218 [ 'skia_os == "mac" or skia_os == "ios"', { | |
219 'dependencies': [ | |
220 'yasm.gyp:yasm#host', | |
221 ], | |
222 'variables': { | |
223 'yasm_path': '<(PRODUCT_DIR)/yasm', | |
224 'conditions': [ | |
225 [ 'skia_arch_type == "x86"', { | |
226 'yasm_format': '-fmacho', | |
227 'yasm_flags': [ | |
228 '-D__x86__', | |
229 '-DMACHO', | |
230 '-Imac/' | |
231 ], | |
232 }, { | |
233 'yasm_format': '-fmacho64', | |
234 'yasm_flags': [ | |
235 '-D__x86_64__', | |
236 '-DMACHO', | |
237 '-Imac/' | |
238 ], | |
239 }], | |
240 ], | |
241 }, | |
242 }], | |
243 [ 'skia_os == "linux" or skia_os == "freebsd" or \ | |
244 (skia_os == "android" and (skia_arch_type == "x86" or skia_arch_type = = "x86_64"))', { | |
245 'dependencies': [ | |
246 'yasm.gyp:yasm#host', | |
247 ], | |
248 'variables': { | |
249 'yasm_path': '<(PRODUCT_DIR)/yasm', | |
250 'conditions': [ | |
251 [ 'skia_arch_type == "x86"', { | |
252 'yasm_format': '-felf', | |
253 'yasm_flags': [ | |
254 '-D__x86__', | |
255 '-DELF', | |
256 '-Ilinux/' | |
257 ], | |
258 }, { | |
259 'yasm_format': '-felf64', | |
260 'yasm_flags': [ | |
261 '-D__x86_64__', | |
262 '-DELF', | |
263 '-Ilinux/' | |
264 ], | |
265 }], | |
266 ], | |
267 }, | |
268 }], | |
269 ], | |
270 'rules': [ | |
271 { | |
272 'rule_name': 'assemble', | |
273 'extension': 'asm', | |
274 'conditions': [ | |
275 [ 'skia_arch_type == "x86" or skia_arch_type == "x86_64"', { | |
276 'inputs': [ '<(yasm_path)', ], | |
277 'outputs': [ | |
278 '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix)', | |
279 ], | |
280 'action': [ | |
281 '<(yasm_path)', | |
282 '<(yasm_format)', | |
283 '<@(yasm_flags)', | |
284 '-DRGBX_FILLER_0XFF', | |
285 '-DSTRICT_MEMORY_ACCESS', | |
286 '-Isimd/', | |
287 '-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffi x)', | |
288 '<(RULE_INPUT_PATH)', | |
289 ], | |
290 'process_outputs_as_sources': 1, | |
291 'message': 'Building <(RULE_INPUT_ROOT).<(object_suffix)', | |
292 }], | |
293 ] | |
294 }, | |
295 ], | |
296 }, | |
297 ], | |
298 } | |
OLD | NEW |