Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(630)

Side by Side Diff: skia/skia_library_opts.gyp

Issue 2299033006: Remove Skia GYP files from Chromium tree. (Closed)
Patch Set: defines Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « skia/skia_gn_files.gypi ('k') | skia/skia_tests.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright 2013 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 # This gyp file contains the platform-specific optimizations for Skia
6 {
7 'variables': {
8 'skia_src_path': '../third_party/skia/src',
9 'includes': [ '../third_party/skia/gyp/opts.gypi' ],
10 'include_dirs': [
11 '../third_party/skia/include/core',
12 '../third_party/skia/include/effects',
13 '../third_party/skia/include/private',
14 '../third_party/skia/include/utils',
15 '../third_party/skia/src/core',
16 '../third_party/skia/src/opts',
17 '../third_party/skia/src/utils',
18 ],
19 },
20
21 'targets': [
22 # SSE files have to be built in a separate target, because gcc needs
23 # different -msse flags for different SSE levels which enable use of SSE
24 # intrinsics but also allow emission of SSE2 instructions for scalar code.
25 # gyp does not allow per-file compiler flags.
26 # For about the same reason, we need to compile the ARM opts files
27 # separately as well.
28 {
29 'target_name': 'skia_opts',
30 'type': 'static_library',
31 # The optimize: 'max' scattered throughout are particularly
32 # important when compiled by MSVC 2013, which seems
33 # to mis-link-time-compile code that's built with
34 # different optimization levels. http://crbug.com/543583
35 'variables': {
36 'optimize': 'max',
37 },
38 'includes': [
39 'skia_common.gypi',
40 '../build/android/increase_size_for_speed.gypi',
41 # Disable LTO due to compiler error
42 # in mems_in_disjoint_alias_sets_p, at alias.c:393
43 # crbug.com/422255
44 '../build/android/disable_gcc_lto.gypi',
45 ],
46 'include_dirs': [ '<@(include_dirs)' ],
47 'conditions': [
48 [ 'target_arch != "arm" and target_arch != "mipsel" and \
49 target_arch != "arm64" and target_arch != "mips64el"', {
50 # Chrome builds with -msse2 locally, so sse2_sources could in theory
51 # be in the regular skia target. But we need skia_opts for arm
52 # anyway, so putting sse2_sources here is simpler than making this
53 # conditionally a type none target on x86.
54 'sources': [ '<@(sse2_sources)' ],
55 'dependencies': [
56 'skia_opts_ssse3',
57 'skia_opts_sse41',
58 'skia_opts_sse42',
59 'skia_opts_avx',
60 'skia_opts_avx2',
61 ],
62 }],
63 [ 'target_arch == "arm"', {
64 'conditions': [
65 [ 'arm_version >= 7', {
66 'sources': [ '<@(armv7_sources)' ],
67 }, { # arm_version < 7
68 'sources': [ '<@(none_sources)' ],
69 }],
70 [ 'arm_version >= 7 and (arm_neon == 1 or arm_neon_optional == 1)', {
71 'dependencies': [
72 'skia_opts_neon',
73 ]
74 }],
75 ],
76 # The assembly uses the frame pointer register (r7 in Thumb/r11 in
77 # ARM), the compiler doesn't like that. Explicitly remove the
78 # -fno-omit-frame-pointer flag for Android, as that gets added to all
79 # targets via common.gypi.
80 'cflags!': [
81 '-fno-omit-frame-pointer',
82 '-marm',
83 '-mapcs-frame',
84 ],
85 'cflags': [
86 '-fomit-frame-pointer',
87 ],
88 }],
89 [ 'target_arch == "mipsel"',{
90 'cflags': [ '-fomit-frame-pointer' ],
91 'conditions': [
92 [ 'mips_dsp_rev >= 1', {
93 'sources': [ '<@(mips_dsp_sources)' ],
94 }, { # mips_dsp_rev == 0
95 'sources': [ '<@(none_sources)' ],
96 }],
97 ],
98 }],
99 [ 'target_arch == "mips64el"',{
100 'cflags': [ '-fomit-frame-pointer' ],
101 'sources': [ '<@(none_sources)' ],
102 }],
103 [ 'target_arch == "arm64"', {
104 'sources': [ '<@(arm64_sources)' ],
105 }],
106 ],
107 },
108 # For the same lame reasons as what is done for skia_opts, we have to
109 # create another target specifically for SSSE3 code as we would not want
110 # to compile the SSE2 code with -mssse3 which would potentially allow
111 # gcc to generate SSSE3 code.
112 {
113 'target_name': 'skia_opts_ssse3',
114 'type': 'static_library',
115 # The optimize: 'max' scattered throughout are particularly
116 # important when compiled by MSVC 2013, which seems
117 # to mis-link-time-compile code that's built with
118 # different optimization levels. http://crbug.com/543583
119 'variables': {
120 'optimize': 'max',
121 },
122 'includes': [
123 'skia_common.gypi',
124 '../build/android/increase_size_for_speed.gypi',
125 ],
126 'include_dirs': [ '<@(include_dirs)' ],
127 'conditions': [
128 [ 'OS in ["linux", "freebsd", "openbsd", "solaris", "android"]', {
129 'cflags': [ '-mssse3' ],
130 }],
131 [ 'OS == "mac"', {
132 'xcode_settings': {
133 'GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS': 'YES',
134 },
135 }],
136 [ 'OS == "win" and clang == 1', {
137 # cl.exe's /arch flag doesn't have a setting for SSSE3, and cl.exe
138 # doesn't need it for intrinsics. clang-cl does need it, though.
139 'msvs_settings': {
140 'VCCLCompilerTool': { 'AdditionalOptions': [ '-mssse3' ] },
141 },
142 }],
143 [ 'OS == "win"', {
144 'defines' : [ 'SK_CPU_SSE_LEVEL=31' ],
145 }],
146 [ 'target_arch != "arm" and target_arch != "arm64" and \
147 target_arch != "mipsel" and target_arch != "mips64el"', {
148 'sources': [ '<@(ssse3_sources)' ],
149 }],
150 ],
151 },
152 # For the same lame reasons as what is done for skia_opts, we also have to
153 # create another target specifically for SSE4.1 code as we would not want
154 # to compile the SSE2 code with -msse4.1 which would potentially allow
155 # gcc to generate SSE4.1 code.
156 {
157 'target_name': 'skia_opts_sse41',
158 'type': 'static_library',
159 # The optimize: 'max' scattered throughout are particularly
160 # important when compiled by MSVC 2013, which seems
161 # to mis-link-time-compile code that's built with
162 # different optimization levels. http://crbug.com/543583
163 'variables': {
164 'optimize': 'max',
165 },
166 'includes': [
167 'skia_common.gypi',
168 '../build/android/increase_size_for_speed.gypi',
169 ],
170 'include_dirs': [ '<@(include_dirs)' ],
171 'sources': [ '<@(sse41_sources)' ],
172 'conditions': [
173 [ 'OS in ["linux", "freebsd", "openbsd", "solaris", "android"]', {
174 'cflags': [ '-msse4.1' ],
175 }],
176 [ 'OS == "mac"', {
177 'xcode_settings': {
178 'GCC_ENABLE_SSE41_EXTENSIONS': 'YES',
179 },
180 }],
181 [ 'OS == "win" and clang == 1', {
182 # cl.exe's /arch flag doesn't have a setting for SSE4.1, and cl.exe
183 # doesn't need it for intrinsics. clang-cl does need it, though.
184 'msvs_settings': {
185 'VCCLCompilerTool': { 'AdditionalOptions': [ '-msse4.1' ] },
186 },
187 }],
188 [ 'OS == "win"', {
189 'defines' : [ 'SK_CPU_SSE_LEVEL=41' ],
190 }],
191 ],
192 },
193 {
194 'target_name': 'skia_opts_sse42',
195 'type': 'static_library',
196 # The optimize: 'max' scattered throughout are particularly
197 # important when compiled by MSVC 2013, which seems
198 # to mis-link-time-compile code that's built with
199 # different optimization levels. http://crbug.com/543583
200 'variables': {
201 'optimize': 'max',
202 },
203 'includes': [
204 'skia_common.gypi',
205 '../build/android/increase_size_for_speed.gypi',
206 ],
207 'include_dirs': [ '<@(include_dirs)' ],
208 'sources': [ '<@(sse42_sources)' ],
209 'conditions': [
210 [ 'OS in ["linux", "freebsd", "openbsd", "solaris", "android"]', {
211 'cflags': [ '-msse4.2' ],
212 }],
213 [ 'OS == "mac"', {
214 'xcode_settings': {
215 'GCC_ENABLE_SSE42_EXTENSIONS': 'YES',
216 },
217 }],
218 [ 'OS == "win" and clang == 1', {
219 # cl.exe's /arch flag doesn't have a setting for SSE4.2, and cl.exe
220 # doesn't need it for intrinsics. clang-cl does need it, though.
221 'msvs_settings': {
222 'VCCLCompilerTool': { 'AdditionalOptions': [ '-msse4.2' ] },
223 },
224 }],
225 [ 'OS == "win"', {
226 'defines' : [ 'SK_CPU_SSE_LEVEL=42' ],
227 }],
228 ],
229 },
230 {
231 'target_name': 'skia_opts_avx',
232 'type': 'static_library',
233 # The optimize: 'max' scattered throughout are particularly
234 # important when compiled by MSVC 2013, which seems
235 # to mis-link-time-compile code that's built with
236 # different optimization levels. http://crbug.com/543583
237 'variables': {
238 'optimize': 'max',
239 },
240 'includes': [
241 'skia_common.gypi',
242 '../build/android/increase_size_for_speed.gypi',
243 ],
244 'include_dirs': [ '<@(include_dirs)' ],
245 'sources': [ '<@(avx_sources)' ],
246 'conditions': [
247 [ 'OS in ["linux", "freebsd", "openbsd", "solaris", "android"]', {
248 'cflags': [ '-mavx' ],
249 }],
250 [ 'OS == "mac"', {
251 'xcode_settings': {
252 'OTHER_CFLAGS': [ '-mavx' ],
253 },
254 }],
255 [ 'OS == "win"', {
256 'msvs_settings': { 'VCCLCompilerTool': { 'EnableEnhancedInstructionSet ': '3' } },
257 }],
258 ],
259 },
260 {
261 'target_name': 'skia_opts_avx2',
262 'type': 'static_library',
263 # The optimize: 'max' scattered throughout are particularly
264 # important when compiled by MSVC 2013, which seems
265 # to mis-link-time-compile code that's built with
266 # different optimization levels. http://crbug.com/543583
267 'variables': {
268 'optimize': 'max',
269 },
270 'includes': [
271 'skia_common.gypi',
272 '../build/android/increase_size_for_speed.gypi',
273 ],
274 'include_dirs': [ '<@(include_dirs)' ],
275 'sources': [ '<@(avx2_sources)' ],
276 'conditions': [
277 [ 'OS in ["linux", "freebsd", "openbsd", "solaris", "android"]', {
278 'cflags': [ '-mavx2' ],
279 }],
280 [ 'OS == "mac"', {
281 'xcode_settings': {
282 'OTHER_CFLAGS': [ '-mavx2' ],
283 },
284 }],
285 [ 'OS == "win"', {
286 'msvs_settings': { 'VCCLCompilerTool': { 'EnableEnhancedInstructionSet ': '5' } },
287 }],
288 ],
289 },
290 {
291 'target_name': 'skia_opts_none',
292 'type': 'static_library',
293 # The optimize: 'max' scattered throughout are particularly
294 # important when compiled by MSVC 2013, which seems
295 # to mis-link-time-compile code that's built with
296 # different optimization levels. http://crbug.com/543583
297 'variables': {
298 'optimize': 'max',
299 },
300 'includes': [
301 'skia_common.gypi',
302 '../build/android/increase_size_for_speed.gypi',
303 ],
304 'include_dirs': [ '<@(include_dirs)' ],
305 'sources': [ '<@(none_sources)' ],
306 },
307 ],
308 'conditions': [
309 # NEON code must be compiled with -mfpu=neon which also affects scalar
310 # code. To support dynamic NEON code paths, we need to build all
311 # NEON-specific sources in a separate static library. The situation
312 # is very similar to the SSSE3 one.
313 ['target_arch == "arm" and (arm_neon == 1 or arm_neon_optional == 1)', {
314 'targets': [
315 {
316 'target_name': 'skia_opts_neon',
317 'type': 'static_library',
318 'includes': [
319 'skia_common.gypi',
320 '../build/android/increase_size_for_speed.gypi',
321 # Disable LTO due to Neon issues
322 # crbug.com/408997
323 '../build/android/disable_gcc_lto.gypi',
324 ],
325 'include_dirs': [ '<@(include_dirs)' ],
326 'cflags!': [
327 '-fno-omit-frame-pointer',
328 '-mfpu=vfp', # remove them all, just in case.
329 '-mfpu=vfpv3',
330 '-mfpu=vfpv3-d16',
331 ],
332 'cflags': [
333 '-mfpu=neon',
334 '-fomit-frame-pointer',
335 ],
336 'ldflags': [
337 '-march=armv7-a',
338 '-Wl,--fix-cortex-a8',
339 ],
340 'sources': [ '<@(neon_sources)' ],
341 },
342 ],
343 }],
344 ],
345 }
OLDNEW
« no previous file with comments | « skia/skia_gn_files.gypi ('k') | skia/skia_tests.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698