OLD | NEW |
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 Loading... |
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 ], | |
194 'conditions': [ | 191 'conditions': [ |
195 [ 'skia_os == "win"', { | |
196 'defines' : [ 'SK_CPU_SSE_LEVEL=31' ], | |
197 }], | |
198 # (Mac has -mssse3 globally.) | |
199 [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "nacl", "chrome
os", "android"] \ | 192 [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "nacl", "chrome
os", "android"] \ |
200 and not skia_android_framework', { | 193 and not skia_android_framework', { |
201 'cflags': [ | 194 'cflags': [ |
202 '-mssse3', | 195 '-mssse3', |
203 ], | 196 ], |
204 }], | 197 }], |
| 198 # (Mac has -mssse3 globally.) |
| 199 [ 'skia_arch_type == "x86"', { |
| 200 'sources': [ |
| 201 '../src/opts/SkBitmapProcState_opts_SSSE3.cpp', |
| 202 ], |
| 203 }], |
205 ], | 204 ], |
206 }, | 205 }, |
207 # For the same lame reasons as what is done for skia_opts, we also have to | 206 # For the same lame reasons as what is done for skia_opts, we also have to |
208 # create another target specifically for SSE4 code as we would not want | 207 # create another target specifically for SSE4 code as we would not want |
209 # to compile the SSE2 code with -msse4 which would potentially allow | 208 # to compile the SSE2 code with -msse4 which would potentially allow |
210 # gcc to generate SSE4 code. | 209 # gcc to generate SSE4 code. |
211 { | 210 { |
212 'target_name': 'opts_sse4', | 211 'target_name': 'opts_sse4', |
213 'product_name': 'skia_opts_sse4', | 212 'product_name': 'skia_opts_sse4', |
214 'type': 'static_library', | 213 'type': 'static_library', |
215 'standalone_static_library': 1, | 214 'standalone_static_library': 1, |
216 'dependencies': [ | 215 'dependencies': [ |
217 'core.gyp:*', | 216 'core.gyp:*', |
218 'effects.gyp:*' | 217 'effects.gyp:*' |
219 ], | 218 ], |
220 'include_dirs': [ | 219 'include_dirs': [ |
221 '../src/core', | 220 '../src/core', |
222 '../src/utils', | 221 '../src/utils', |
223 ], | 222 ], |
224 'sources': [ | |
225 '../src/opts/SkBlurImage_opts_SSE4.cpp', | |
226 ], | |
227 'conditions': [ | 223 '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 }], | |
241 [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "nacl", "chrome
os", "android"] \ | 224 [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "nacl", "chrome
os", "android"] \ |
242 and not skia_android_framework', { | 225 and not skia_android_framework', { |
243 'cflags': [ | 226 'cflags': [ |
244 '-msse4.1', | 227 '-msse4', |
245 ], | 228 ], |
246 }], | 229 }], |
247 [ 'skia_os == "mac"', { | 230 [ 'skia_os == "mac"', { |
248 'xcode_settings': { | 231 'xcode_settings': { |
249 'OTHER_CPLUSPLUSFLAGS!': [ | 232 'OTHER_CPLUSPLUSFLAGS!': [ |
250 '-mssse3', | 233 '-mssse3', |
251 ], | 234 ], |
252 'OTHER_CPLUSPLUSFLAGS': [ | 235 'OTHER_CPLUSPLUSFLAGS': [ |
253 '-msse4.1', | 236 '-msse4', |
254 ], | 237 ], |
255 }, | 238 }, |
256 }], | 239 }], |
| 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 Loading... |
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 } |
OLD | NEW |