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

Side by Side Diff: skia/skia_library_opts.gyp

Issue 895853003: Update from https://crrev.com/314320 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 10 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_library.gypi ('k') | testing/PRESUBMIT.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 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 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
6 # This gyp file contains the platform-specific optimizations for Skia 5 # This gyp file contains the platform-specific optimizations for Skia
7 { 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/utils',
14 '../third_party/skia/src/core',
15 '../third_party/skia/src/opts',
16 '../third_party/skia/src/utils',
17 ],
18 },
19
8 'targets': [ 20 'targets': [
9 # Due to an unfortunate intersection of lameness between gcc and gyp, 21 # Due to an unfortunate intersection of lameness between gcc and gyp,
10 # we have to build the *_SSE2.cpp files in a separate target. The 22 # we have to build the *_SSE2.cpp files in a separate target. The
11 # gcc lameness is that, in order to compile SSE2 intrinsics code, it 23 # gcc lameness is that, in order to compile SSE2 intrinsics code, it
12 # must be passed the -msse2 flag. However, with this flag, it may 24 # must be passed the -msse2 flag. However, with this flag, it may
13 # emit SSE2 instructions even for scalar code, such as the CPUID 25 # emit SSE2 instructions even for scalar code, such as the CPUID
14 # test used to test for the presence of SSE2. So that, and all other 26 # test used to test for the presence of SSE2. So that, and all other
15 # code must be compiled *without* -msse2. The gyp lameness is that it 27 # code must be compiled *without* -msse2. The gyp lameness is that it
16 # does not allow file-specific CFLAGS, so we must create this extra 28 # does not allow file-specific CFLAGS, so we must create this extra
17 # target for those files to be compiled with -msse2. 29 # target for those files to be compiled with -msse2.
(...skipping 10 matching lines...) Expand all
28 'target_name': 'skia_opts', 40 'target_name': 'skia_opts',
29 'type': 'static_library', 41 'type': 'static_library',
30 'includes': [ 42 'includes': [
31 'skia_common.gypi', 43 'skia_common.gypi',
32 '../build/android/increase_size_for_speed.gypi', 44 '../build/android/increase_size_for_speed.gypi',
33 # Disable LTO due to compiler error 45 # Disable LTO due to compiler error
34 # in mems_in_disjoint_alias_sets_p, at alias.c:393 46 # in mems_in_disjoint_alias_sets_p, at alias.c:393
35 # crbug.com/422255 47 # crbug.com/422255
36 '../build/android/disable_lto.gypi', 48 '../build/android/disable_lto.gypi',
37 ], 49 ],
38 'include_dirs': [ 50 'include_dirs': [ '<@(include_dirs)' ],
39 '../third_party/skia/include/core',
40 '../third_party/skia/include/effects',
41 '../third_party/skia/src/core',
42 '../third_party/skia/src/opts',
43 '../third_party/skia/src/utils',
44 ],
45 'conditions': [ 51 'conditions': [
46 [ 'os_posix == 1 and OS != "mac" and OS != "android" and \ 52 [ 'os_posix == 1 and OS != "mac" and OS != "android" and \
47 target_arch != "arm" and target_arch != "arm64" and \ 53 target_arch != "arm" and target_arch != "arm64" and \
48 target_arch != "mipsel" and target_arch != "mips64el"', { 54 target_arch != "mipsel" and target_arch != "mips64el"', {
49 'cflags': [ 55 'cflags': [ '-msse2' ],
50 '-msse2',
51 ],
52 }], 56 }],
53 [ 'target_arch != "arm" and target_arch != "mipsel" and \ 57 [ 'target_arch != "arm" and target_arch != "mipsel" and \
54 target_arch != "arm64" and target_arch != "mips64el"', { 58 target_arch != "arm64" and target_arch != "mips64el"', {
55 'sources': [ 59 'sources': [ '<@(sse2_sources)' ],
56 '../third_party/skia/src/opts/SkBitmapFilter_opts_SSE2.cpp',
57 '../third_party/skia/src/opts/SkBitmapProcState_opts_SSE2.cpp',
58 '../third_party/skia/src/opts/SkBlitRect_opts_SSE2.cpp',
59 '../third_party/skia/src/opts/SkBlitRow_opts_SSE2.cpp',
60 '../third_party/skia/src/opts/SkBlurImage_opts_SSE2.cpp',
61 '../third_party/skia/src/opts/SkMorphology_opts_SSE2.cpp',
62 '../third_party/skia/src/opts/SkTextureCompression_opts_none.cpp',
63 '../third_party/skia/src/opts/SkUtils_opts_SSE2.cpp',
64 '../third_party/skia/src/opts/SkXfermode_opts_SSE2.cpp',
65 ],
66 'dependencies': [ 60 'dependencies': [
67 'skia_opts_ssse3', 61 'skia_opts_ssse3',
68 'skia_opts_sse4', 62 'skia_opts_sse41',
69 ], 63 ],
70 }], 64 }],
71 [ 'target_arch == "arm"', { 65 [ 'target_arch == "arm"', {
72 'conditions': [ 66 'conditions': [
73 [ 'arm_version >= 7 and (arm_neon == 1 or arm_neon_optional == 1)', { 67 [ 'arm_version >= 7 and (arm_neon == 1 or arm_neon_optional == 1)', {
74 'dependencies': [ 68 'dependencies': [
75 'skia_opts_neon', 69 'skia_opts_neon',
76 ] 70 ]
77 }], 71 }],
78 ], 72 ],
79 # The assembly uses the frame pointer register (r7 in Thumb/r11 in 73 # The assembly uses the frame pointer register (r7 in Thumb/r11 in
80 # ARM), the compiler doesn't like that. Explicitly remove the 74 # ARM), the compiler doesn't like that. Explicitly remove the
81 # -fno-omit-frame-pointer flag for Android, as that gets added to all 75 # -fno-omit-frame-pointer flag for Android, as that gets added to all
82 # targets via common.gypi. 76 # targets via common.gypi.
83 'cflags!': [ 77 'cflags!': [
84 '-fno-omit-frame-pointer', 78 '-fno-omit-frame-pointer',
85 '-marm', 79 '-marm',
86 '-mapcs-frame', 80 '-mapcs-frame',
87 ], 81 ],
88 'cflags': [ 82 'cflags': [
89 '-fomit-frame-pointer', 83 '-fomit-frame-pointer',
90 ], 84 ],
91 'sources': [
92 '../third_party/skia/src/opts/SkBitmapProcState_opts_arm.cpp',
93 ],
94 }], 85 }],
95 [ 'target_arch == "arm" and (arm_version < 7 or arm_neon == 0)', { 86 [ 'target_arch == "arm" and arm_version < 7', {
96 'sources': [ 87 'sources': [ '<@(none_sources)' ],
97 '../third_party/skia/src/opts/memset.arm.S',
98 ],
99 }], 88 }],
100 [ 'target_arch == "arm" and arm_version < 6', { 89 [ 'target_arch == "arm" and arm_version >= 7', {
101 'sources': [ 90 'sources': [ '<@(armv7_sources)' ],
102 '../third_party/skia/src/opts/SkBlitMask_opts_none.cpp',
103 '../third_party/skia/src/opts/SkBlitRow_opts_none.cpp',
104 '../third_party/skia/src/opts/SkBlurImage_opts_none.cpp',
105 '../third_party/skia/src/opts/SkMorphology_opts_none.cpp',
106 '../third_party/skia/src/opts/SkTextureCompression_opts_none.cpp',
107 '../third_party/skia/src/opts/SkUtils_opts_none.cpp',
108 '../third_party/skia/src/opts/SkXfermode_opts_none.cpp',
109 ],
110 }],
111 [ 'target_arch == "arm" and arm_version >= 6', {
112 'sources': [
113 '../third_party/skia/src/opts/SkBlitMask_opts_arm.cpp',
114 '../third_party/skia/src/opts/SkBlitRow_opts_arm.cpp',
115 '../third_party/skia/src/opts/SkBlitRow_opts_arm.h',
116 '../third_party/skia/src/opts/SkBlurImage_opts_arm.cpp',
117 '../third_party/skia/src/opts/SkMorphology_opts_arm.cpp',
118 '../third_party/skia/src/opts/SkTextureCompression_opts_arm.cpp',
119 '../third_party/skia/src/opts/SkUtils_opts_arm.cpp',
120 '../third_party/skia/src/opts/SkXfermode_opts_none.cpp',
121 ],
122 }], 91 }],
123 [ 'target_arch == "mipsel" or target_arch == "mips64el"',{ 92 [ 'target_arch == "mipsel" or target_arch == "mips64el"',{
124 'cflags': [ 93 'cflags': [ '-fomit-frame-pointer' ],
125 '-fomit-frame-pointer', 94 'sources': [ '<@(none_sources)' ],
126 ],
127 'sources': [
128 '../third_party/skia/src/opts/SkBitmapProcState_opts_none.cpp',
129 '../third_party/skia/src/opts/SkBlitMask_opts_none.cpp',
130 '../third_party/skia/src/opts/SkBlitRow_opts_none.cpp',
131 '../third_party/skia/src/opts/SkBlurImage_opts_none.cpp',
132 '../third_party/skia/src/opts/SkMorphology_opts_none.cpp',
133 '../third_party/skia/src/opts/SkTextureCompression_opts_none.cpp',
134 '../third_party/skia/src/opts/SkUtils_opts_none.cpp',
135 '../third_party/skia/src/opts/SkXfermode_opts_none.cpp',
136 ],
137 }], 95 }],
138 [ 'target_arch == "arm64"', { 96 [ 'target_arch == "arm64"', {
139 'sources': [ 97 'sources': [ '<@(arm64_sources)' ],
140 '../third_party/skia/src/opts/SkBitmapProcState_arm_neon.cpp',
141 '../third_party/skia/src/opts/SkBitmapProcState_matrixProcs_neon.cpp ',
142 '../third_party/skia/src/opts/SkBitmapProcState_opts_arm.cpp',
143 '../third_party/skia/src/opts/SkBlitMask_opts_arm.cpp',
144 '../third_party/skia/src/opts/SkBlitMask_opts_arm_neon.cpp',
145 '../third_party/skia/src/opts/SkBlitRow_opts_none.cpp',
146 '../third_party/skia/src/opts/SkBlurImage_opts_arm.cpp',
147 '../third_party/skia/src/opts/SkBlurImage_opts_neon.cpp',
148 '../third_party/skia/src/opts/SkMorphology_opts_arm.cpp',
149 '../third_party/skia/src/opts/SkMorphology_opts_neon.cpp',
150 '../third_party/skia/src/opts/SkTextureCompression_opts_arm.cpp',
151 '../third_party/skia/src/opts/SkTextureCompression_opts_neon.cpp',
152 '../third_party/skia/src/opts/SkUtils_opts_none.cpp',
153 '../third_party/skia/src/opts/SkXfermode_opts_arm.cpp',
154 '../third_party/skia/src/opts/SkXfermode_opts_arm_neon.cpp',
155 ],
156 }], 98 }],
157 ], 99 ],
158 }, 100 },
159 # For the same lame reasons as what is done for skia_opts, we have to 101 # For the same lame reasons as what is done for skia_opts, we have to
160 # create another target specifically for SSSE3 code as we would not want 102 # create another target specifically for SSSE3 code as we would not want
161 # to compile the SSE2 code with -mssse3 which would potentially allow 103 # to compile the SSE2 code with -mssse3 which would potentially allow
162 # gcc to generate SSSE3 code. 104 # gcc to generate SSSE3 code.
163 { 105 {
164 'target_name': 'skia_opts_ssse3', 106 'target_name': 'skia_opts_ssse3',
165 'type': 'static_library', 107 'type': 'static_library',
166 'includes': [ 108 'includes': [
167 'skia_common.gypi', 109 'skia_common.gypi',
168 '../build/android/increase_size_for_speed.gypi', 110 '../build/android/increase_size_for_speed.gypi',
169 ], 111 ],
170 'include_dirs': [ 112 'include_dirs': [ '<@(include_dirs)' ],
171 '../third_party/skia/include/core',
172 '../third_party/skia/include/effects',
173 '../third_party/skia/src/core',
174 ],
175 'conditions': [ 113 'conditions': [
176 [ 'OS in ["linux", "freebsd", "openbsd", "solaris", "android"]', { 114 [ 'OS in ["linux", "freebsd", "openbsd", "solaris", "android"]', {
177 'cflags': [ 115 'cflags': [ '-mssse3' ],
178 '-mssse3',
179 ],
180 }], 116 }],
181 [ 'OS == "mac"', { 117 [ 'OS == "mac"', {
182 'xcode_settings': { 118 'xcode_settings': {
183 'GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS': 'YES', 119 'GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS': 'YES',
184 }, 120 },
185 }], 121 }],
186 [ 'OS == "win" and clang == 1', { 122 [ 'OS == "win" and clang == 1', {
187 # cl.exe's /arch flag doesn't have a setting for SSSE3, and cl.exe 123 # cl.exe's /arch flag doesn't have a setting for SSSE3, and cl.exe
188 # doesn't need it for intrinsics. clang-cl does need it, though. 124 # doesn't need it for intrinsics. clang-cl does need it, though.
189 'msvs_settings': { 125 'msvs_settings': {
190 'VCCLCompilerTool': { 'AdditionalOptions': [ '-mssse3' ] }, 126 'VCCLCompilerTool': { 'AdditionalOptions': [ '-mssse3' ] },
191 }, 127 },
192 }], 128 }],
193 [ 'OS == "win"', { 129 [ 'OS == "win"', {
194 'include_dirs': [ 130 'defines' : [ 'SK_CPU_SSE_LEVEL=31' ],
195 'config/win',
196 ],
197 'direct_dependent_settings': {
198 'include_dirs': [
199 'config/win',
200 ],
201 },
202 'defines' : [
203 'SK_CPU_SSE_LEVEL=31'
204 ],
205 }], 131 }],
206 [ 'target_arch != "arm" and target_arch != "arm64" and \ 132 [ 'target_arch != "arm" and target_arch != "arm64" and \
207 target_arch != "mipsel" and target_arch != "mips64el"', { 133 target_arch != "mipsel" and target_arch != "mips64el"', {
208 'sources': [ 134 'sources': [ '<@(ssse3_sources)' ],
209 '../third_party/skia/src/opts/SkBitmapProcState_opts_SSSE3.cpp',
210 ],
211 }], 135 }],
212 ], 136 ],
213 }, 137 },
214 # For the same lame reasons as what is done for skia_opts, we also have to 138 # For the same lame reasons as what is done for skia_opts, we also have to
215 # create another target specifically for SSE4 code as we would not want 139 # create another target specifically for SSE4.1 code as we would not want
216 # to compile the SSE2 code with -msse4 which would potentially allow 140 # to compile the SSE2 code with -msse4.1 which would potentially allow
217 # gcc to generate SSE4 code. 141 # gcc to generate SSE4.1 code.
218 { 142 {
219 'target_name': 'skia_opts_sse4', 143 'target_name': 'skia_opts_sse41',
220 'type': 'static_library', 144 'type': 'static_library',
221 'includes': [ 145 'includes': [
222 'skia_common.gypi', 146 'skia_common.gypi',
223 '../build/android/increase_size_for_speed.gypi', 147 '../build/android/increase_size_for_speed.gypi',
224 ], 148 ],
225 'include_dirs': [ 149 'include_dirs': [ '<@(include_dirs)' ],
226 '../third_party/skia/include/core', 150 'sources': [ '<@(sse41_sources)' ],
227 '../third_party/skia/src/core',
228 ],
229 'sources': [
230 '../third_party/skia/src/opts/SkBlurImage_opts_SSE4.cpp',
231 ],
232 'conditions': [ 151 'conditions': [
233 [ 'OS in ["linux", "freebsd", "openbsd", "solaris", "android"]', { 152 [ 'OS in ["linux", "freebsd", "openbsd", "solaris", "android"]', {
234 'cflags': [ 153 'cflags': [ '-msse4.1' ],
235 '-msse4.1',
236 ],
237 }], 154 }],
238 [ 'OS == "mac"', { 155 [ 'OS == "mac"', {
239 'xcode_settings': { 156 'xcode_settings': {
240 'GCC_ENABLE_SSE41_EXTENSIONS': 'YES', 157 'GCC_ENABLE_SSE41_EXTENSIONS': 'YES',
241 }, 158 },
242 }], 159 }],
243 [ 'OS == "win" and clang == 1', { 160 [ 'OS == "win" and clang == 1', {
244 # cl.exe's /arch flag doesn't have a setting for SSE4.1, and cl.exe 161 # cl.exe's /arch flag doesn't have a setting for SSE4.1, and cl.exe
245 # doesn't need it for intrinsics. clang-cl does need it, though. 162 # doesn't need it for intrinsics. clang-cl does need it, though.
246 'msvs_settings': { 163 'msvs_settings': {
247 'VCCLCompilerTool': { 'AdditionalOptions': [ '-msse4.1' ] }, 164 'VCCLCompilerTool': { 'AdditionalOptions': [ '-msse4.1' ] },
248 }, 165 },
249 }], 166 }],
250 [ 'OS == "win"', { 167 [ 'OS == "win"', {
251 'defines' : [ 168 'defines' : [ 'SK_CPU_SSE_LEVEL=41' ],
252 'SK_CPU_SSE_LEVEL=41'
253 ],
254 }],
255 [ 'target_arch == "x64"', {
256 'sources': [
257 '../third_party/skia/src/opts/SkBlitRow_opts_SSE4_x64_asm.S',
258 ],
259 }],
260 [ 'target_arch == "ia32"', {
261 'sources': [
262 '../third_party/skia/src/opts/SkBlitRow_opts_SSE4_asm.S',
263 ],
264 }], 169 }],
265 ], 170 ],
266 }, 171 },
267 { 172 {
268 'target_name': 'skia_opts_none', 173 'target_name': 'skia_opts_none',
269 'type': 'static_library', 174 'type': 'static_library',
270 'includes': [ 175 'includes': [
271 'skia_common.gypi', 176 'skia_common.gypi',
272 '../build/android/increase_size_for_speed.gypi', 177 '../build/android/increase_size_for_speed.gypi',
273 ], 178 ],
274 'include_dirs': [ 179 'include_dirs': [ '<@(include_dirs)' ],
275 '../third_party/skia/include/core', 180 'sources': [ '<@(none_sources)' ],
276 '../third_party/skia/include/effects',
277 '../third_party/skia/src/core',
278 '../third_party/skia/src/utils',
279 ],
280 'sources': [
281 '../third_party/skia/src/opts/SkBitmapProcState_opts_none.cpp',
282 '../third_party/skia/src/opts/SkBlitMask_opts_none.cpp',
283 '../third_party/skia/src/opts/SkBlitRow_opts_none.cpp',
284 '../third_party/skia/src/opts/SkBlurImage_opts_none.cpp',
285 '../third_party/skia/src/opts/SkMorphology_opts_none.cpp',
286 '../third_party/skia/src/opts/SkTextureCompression_opts_none.cpp',
287 '../third_party/skia/src/opts/SkUtils_opts_none.cpp',
288 '../third_party/skia/src/opts/SkXfermode_opts_none.cpp',
289 ],
290 }, 181 },
291 ], 182 ],
292 'conditions': [ 183 'conditions': [
293 # NEON code must be compiled with -mfpu=neon which also affects scalar 184 # NEON code must be compiled with -mfpu=neon which also affects scalar
294 # code. To support dynamic NEON code paths, we need to build all 185 # code. To support dynamic NEON code paths, we need to build all
295 # NEON-specific sources in a separate static library. The situation 186 # NEON-specific sources in a separate static library. The situation
296 # is very similar to the SSSE3 one. 187 # is very similar to the SSSE3 one.
297 ['target_arch == "arm" and (arm_neon == 1 or arm_neon_optional == 1)', { 188 ['target_arch == "arm" and (arm_neon == 1 or arm_neon_optional == 1)', {
298 'targets': [ 189 'targets': [
299 { 190 {
300 'target_name': 'skia_opts_neon', 191 'target_name': 'skia_opts_neon',
301 'type': 'static_library', 192 'type': 'static_library',
302 'includes': [ 193 'includes': [
303 'skia_common.gypi', 194 'skia_common.gypi',
304 '../build/android/increase_size_for_speed.gypi', 195 '../build/android/increase_size_for_speed.gypi',
305 # Disable LTO due to Neon issues 196 # Disable LTO due to Neon issues
306 # crbug.com/408997 197 # crbug.com/408997
307 '../build/android/disable_lto.gypi', 198 '../build/android/disable_lto.gypi',
308 ], 199 ],
309 'include_dirs': [ 200 'include_dirs': [ '<@(include_dirs)' ],
310 '../third_party/skia/include/core',
311 '../third_party/skia/include/effects',
312 '../third_party/skia/src/core',
313 '../third_party/skia/src/opts',
314 '../third_party/skia/src/utils',
315 ],
316 'cflags!': [ 201 'cflags!': [
317 '-fno-omit-frame-pointer', 202 '-fno-omit-frame-pointer',
318 '-mfpu=vfp', # remove them all, just in case. 203 '-mfpu=vfp', # remove them all, just in case.
319 '-mfpu=vfpv3', 204 '-mfpu=vfpv3',
320 '-mfpu=vfpv3-d16', 205 '-mfpu=vfpv3-d16',
321 ], 206 ],
322 'cflags': [ 207 'cflags': [
323 '-mfpu=neon', 208 '-mfpu=neon',
324 '-fomit-frame-pointer', 209 '-fomit-frame-pointer',
325 ], 210 ],
326 'ldflags': [ 211 'ldflags': [
327 '-march=armv7-a', 212 '-march=armv7-a',
328 '-Wl,--fix-cortex-a8', 213 '-Wl,--fix-cortex-a8',
329 ], 214 ],
330 'sources': [ 215 'sources': [ '<@(neon_sources)' ],
331 '../third_party/skia/src/opts/SkBitmapProcState_arm_neon.cpp',
332 '../third_party/skia/src/opts/SkBitmapProcState_matrixProcs_neon.cpp ',
333 '../third_party/skia/src/opts/SkBitmapProcState_matrix_clamp_neon.h' ,
334 '../third_party/skia/src/opts/SkBitmapProcState_matrix_repeat_neon.h ',
335 '../third_party/skia/src/opts/SkBlitMask_opts_arm_neon.cpp',
336 '../third_party/skia/src/opts/SkBlitRow_opts_arm_neon.cpp',
337 '../third_party/skia/src/opts/SkBlurImage_opts_neon.cpp',
338 '../third_party/skia/src/opts/SkMorphology_opts_neon.cpp',
339 '../third_party/skia/src/opts/SkTextureCompression_opts_neon.cpp',
340 '../third_party/skia/src/opts/SkXfermode_opts_arm_neon.cpp',
341 '../third_party/skia/src/opts/memset16_neon.S',
342 '../third_party/skia/src/opts/memset32_neon.S',
343 ],
344 }, 216 },
345 ], 217 ],
346 }], 218 }],
347 ], 219 ],
348 } 220 }
OLDNEW
« no previous file with comments | « skia/skia_library.gypi ('k') | testing/PRESUBMIT.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698