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

Side by Side Diff: gyp/opts.gyp

Issue 403583002: Enable the SSSE3 compile time check on all platforms. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: reapply after chrome gyp Created 6 years, 4 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 | « gyp/common_conditions.gypi ('k') | src/opts/SkBitmapProcState_opts_SSSE3.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Gyp file for opts projects 1 # Gyp file for opts projects
2 { 2 {
3 'targets': [ 3 'targets': [
4 # Due to an unfortunate intersection of lameness between gcc and gyp, 4 # Due to an unfortunate intersection of lameness between gcc and gyp,
5 # we have to build the *_SSE2.cpp files in a separate target. The 5 # we have to build the *_SSE2.cpp files in a separate target. The
6 # gcc lameness is that, in order to compile SSE2 intrinsics code, it 6 # gcc lameness is that, in order to compile SSE2 intrinsics code, it
7 # must be passed the -msse2 flag. However, with this flag, it may 7 # must be passed the -msse2 flag. However, with this flag, it may
8 # emit SSE2 instructions even for scalar code, such as the CPUID 8 # emit SSE2 instructions even for scalar code, such as the CPUID
9 # test used to test for the presence of SSE2. So that, and all other 9 # test used to test for the presence of SSE2. So that, and all other
10 # code must be compiled *without* -msse2. The gyp lameness is that it 10 # code must be compiled *without* -msse2. The gyp lameness is that it
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 'type': 'static_library', 181 'type': 'static_library',
182 'standalone_static_library': 1, 182 'standalone_static_library': 1,
183 'dependencies': [ 183 'dependencies': [
184 'core.gyp:*', 184 'core.gyp:*',
185 'effects.gyp:*' 185 'effects.gyp:*'
186 ], 186 ],
187 'include_dirs': [ 187 'include_dirs': [
188 '../src/core', 188 '../src/core',
189 '../src/utils', 189 '../src/utils',
190 ], 190 ],
191 'sources': [
192 '../src/opts/SkBitmapProcState_opts_SSSE3.cpp',
193 ],
191 'conditions': [ 194 'conditions': [
195 [ 'skia_os == "win"', {
196 'defines' : [ 'SK_CPU_SSE_LEVEL=31' ],
197 }],
198 # (Mac has -mssse3 globally.)
192 [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "nacl", "chrome os", "android"] \ 199 [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "nacl", "chrome os", "android"] \
193 and not skia_android_framework', { 200 and not skia_android_framework', {
194 'cflags': [ 201 'cflags': [
195 '-mssse3', 202 '-mssse3',
196 ], 203 ],
197 }], 204 }],
198 # (Mac has -mssse3 globally.)
199 [ 'skia_arch_type == "x86"', {
200 'sources': [
201 '../src/opts/SkBitmapProcState_opts_SSSE3.cpp',
202 ],
203 }],
204 ], 205 ],
205 }, 206 },
206 # For the same lame reasons as what is done for skia_opts, we also have to 207 # For the same lame reasons as what is done for skia_opts, we also have to
207 # create another target specifically for SSE4 code as we would not want 208 # create another target specifically for SSE4 code as we would not want
208 # to compile the SSE2 code with -msse4 which would potentially allow 209 # to compile the SSE2 code with -msse4 which would potentially allow
209 # gcc to generate SSE4 code. 210 # gcc to generate SSE4 code.
210 { 211 {
211 'target_name': 'opts_sse4', 212 'target_name': 'opts_sse4',
212 'product_name': 'skia_opts_sse4', 213 'product_name': 'skia_opts_sse4',
213 'type': 'static_library', 214 'type': 'static_library',
214 'standalone_static_library': 1, 215 'standalone_static_library': 1,
215 'dependencies': [ 216 'dependencies': [
216 'core.gyp:*', 217 'core.gyp:*',
217 'effects.gyp:*' 218 'effects.gyp:*'
218 ], 219 ],
219 'include_dirs': [ 220 'include_dirs': [
220 '../src/core', 221 '../src/core',
221 '../src/utils', 222 '../src/utils',
222 ], 223 ],
224 'sources': [
225 '../src/opts/SkBlurImage_opts_SSE4.cpp',
226 ],
223 'conditions': [ 227 'conditions': [
228 [ 'skia_arch_width == 64', {
229 'sources': [
230 '../src/opts/SkBlitRow_opts_SSE4_x64_asm.S',
231 ],
232 }],
233 [ 'skia_arch_width == 32', {
234 'sources': [
235 '../src/opts/SkBlitRow_opts_SSE4_asm.S',
236 ],
237 }],
238 [ 'skia_os == "win"', {
239 'defines' : [ 'SK_CPU_SSE_LEVEL=41' ],
240 }],
224 [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "nacl", "chrome os", "android"] \ 241 [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "nacl", "chrome os", "android"] \
225 and not skia_android_framework', { 242 and not skia_android_framework', {
226 'cflags': [ 243 'cflags': [
227 '-msse4', 244 '-msse4.1',
228 ], 245 ],
229 }], 246 }],
230 [ 'skia_os == "mac"', { 247 [ 'skia_os == "mac"', {
231 'xcode_settings': { 248 'xcode_settings': {
232 'OTHER_CPLUSPLUSFLAGS!': [ 249 'OTHER_CPLUSPLUSFLAGS!': [
233 '-mssse3', 250 '-mssse3',
234 ], 251 ],
235 'OTHER_CPLUSPLUSFLAGS': [ 252 'OTHER_CPLUSPLUSFLAGS': [
236 '-msse4', 253 '-msse4.1',
237 ], 254 ],
238 }, 255 },
239 }], 256 }],
240 [ 'skia_arch_type == "x86"', {
241 'sources': [
242 '../src/opts/SkBlurImage_opts_SSE4.cpp',
243 ],
244 'conditions': [
245 [ 'skia_arch_width == 64', {
246 'sources': [
247 '../src/opts/SkBlitRow_opts_SSE4_x64_asm.S',
248 ],
249 }],
250 [ 'skia_arch_width == 32', {
251 'sources': [
252 '../src/opts/SkBlitRow_opts_SSE4_asm.S',
253 ],
254 }],
255 ],
256 }],
257 ], 257 ],
258 }, 258 },
259 # NEON code must be compiled with -mfpu=neon which also affects scalar 259 # NEON code must be compiled with -mfpu=neon which also affects scalar
260 # code. To support dynamic NEON code paths, we need to build all 260 # code. To support dynamic NEON code paths, we need to build all
261 # NEON-specific sources in a separate static library. The situation 261 # NEON-specific sources in a separate static library. The situation
262 # is very similar to the SSSE3 and SSE4 one. 262 # is very similar to the SSSE3 and SSE4 one.
263 { 263 {
264 'target_name': 'opts_neon', 264 'target_name': 'opts_neon',
265 'product_name': 'skia_opts_neon', 265 'product_name': 'skia_opts_neon',
266 'type': 'static_library', 266 'type': 'static_library',
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 '../src/opts/SkBlitMask_opts_arm_neon.cpp', 301 '../src/opts/SkBlitMask_opts_arm_neon.cpp',
302 '../src/opts/SkBlitRow_opts_arm_neon.cpp', 302 '../src/opts/SkBlitRow_opts_arm_neon.cpp',
303 '../src/opts/SkBlurImage_opts_neon.cpp', 303 '../src/opts/SkBlurImage_opts_neon.cpp',
304 '../src/opts/SkMorphology_opts_neon.cpp', 304 '../src/opts/SkMorphology_opts_neon.cpp',
305 '../src/opts/SkTextureCompression_opts_neon.cpp', 305 '../src/opts/SkTextureCompression_opts_neon.cpp',
306 '../src/opts/SkXfermode_opts_arm_neon.cpp', 306 '../src/opts/SkXfermode_opts_arm_neon.cpp',
307 ], 307 ],
308 }, 308 },
309 ], 309 ],
310 } 310 }
OLDNEW
« no previous file with comments | « gyp/common_conditions.gypi ('k') | src/opts/SkBitmapProcState_opts_SSSE3.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698