OLD | NEW |
1 { | 1 { |
2 'targets': [ | 2 'targets': [ |
3 # Due to an unfortunate intersection of lameness between gcc and gyp, | 3 # Due to an unfortunate intersection of lameness between gcc and gyp, |
4 # we have to build the *_SSE2.cpp files in a separate target. The | 4 # we have to build the *_SSE2.cpp files in a separate target. The |
5 # gcc lameness is that, in order to compile SSE2 intrinsics code, it | 5 # gcc lameness is that, in order to compile SSE2 intrinsics code, it |
6 # must be passed the -msse2 flag. However, with this flag, it may | 6 # must be passed the -msse2 flag. However, with this flag, it may |
7 # emit SSE2 instructions even for scalar code, such as the CPUID | 7 # emit SSE2 instructions even for scalar code, such as the CPUID |
8 # test used to test for the presence of SSE2. So that, and all other | 8 # test used to test for the presence of SSE2. So that, and all other |
9 # code must be compiled *without* -msse2. The gyp lameness is that it | 9 # code must be compiled *without* -msse2. The gyp lameness is that it |
10 # does not allow file-specific CFLAGS, so we must create this extra | 10 # does not allow file-specific CFLAGS, so we must create this extra |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 ], | 44 ], |
45 'dependencies': [ | 45 'dependencies': [ |
46 'opts_ssse3', | 46 'opts_ssse3', |
47 ], | 47 ], |
48 'sources': [ | 48 'sources': [ |
49 '../src/opts/opts_check_SSE2.cpp', | 49 '../src/opts/opts_check_SSE2.cpp', |
50 '../src/opts/SkBitmapProcState_opts_SSE2.cpp', | 50 '../src/opts/SkBitmapProcState_opts_SSE2.cpp', |
51 '../src/opts/SkBitmapFilter_opts_SSE2.cpp', | 51 '../src/opts/SkBitmapFilter_opts_SSE2.cpp', |
52 '../src/opts/SkBlitRow_opts_SSE2.cpp', | 52 '../src/opts/SkBlitRow_opts_SSE2.cpp', |
53 '../src/opts/SkBlitRect_opts_SSE2.cpp', | 53 '../src/opts/SkBlitRect_opts_SSE2.cpp', |
| 54 '../src/opts/SkBlurImage_opts_SSE2.cpp', |
54 '../src/opts/SkMorphology_opts_SSE2.cpp', | 55 '../src/opts/SkMorphology_opts_SSE2.cpp', |
55 '../src/opts/SkUtils_opts_SSE2.cpp', | 56 '../src/opts/SkUtils_opts_SSE2.cpp', |
56 '../src/opts/SkXfermode_opts_none.cpp', | 57 '../src/opts/SkXfermode_opts_none.cpp', |
57 ], | 58 ], |
58 }], | 59 }], |
59 [ 'skia_arch_type == "arm" and arm_version >= 7', { | 60 [ 'skia_arch_type == "arm" and arm_version >= 7', { |
60 # The assembly uses the frame pointer register (r7 in Thumb/r11 in | 61 # The assembly uses the frame pointer register (r7 in Thumb/r11 in |
61 # ARM), the compiler doesn't like that. | 62 # ARM), the compiler doesn't like that. |
62 'cflags!': [ | 63 'cflags!': [ |
63 '-fno-omit-frame-pointer', | 64 '-fno-omit-frame-pointer', |
64 '-mapcs-frame', | 65 '-mapcs-frame', |
65 '-mapcs', | 66 '-mapcs', |
66 ], | 67 ], |
67 'cflags': [ | 68 'cflags': [ |
68 '-fomit-frame-pointer', | 69 '-fomit-frame-pointer', |
69 '-mno-apcs-frame', | 70 '-mno-apcs-frame', |
70 ], | 71 ], |
71 'variables': { | 72 'variables': { |
72 'arm_neon_optional%': '<(arm_neon_optional>', | 73 'arm_neon_optional%': '<(arm_neon_optional>', |
73 }, | 74 }, |
74 'sources': [ | 75 'sources': [ |
75 '../src/opts/opts_check_arm.cpp', | 76 '../src/opts/opts_check_arm.cpp', |
76 '../src/opts/memset.arm.S', | 77 '../src/opts/memset.arm.S', |
77 '../src/opts/SkBitmapProcState_opts_arm.cpp', | 78 '../src/opts/SkBitmapProcState_opts_arm.cpp', |
78 '../src/opts/SkBlitMask_opts_arm.cpp', | 79 '../src/opts/SkBlitMask_opts_arm.cpp', |
79 '../src/opts/SkBlitRow_opts_arm.cpp', | 80 '../src/opts/SkBlitRow_opts_arm.cpp', |
80 '../src/opts/SkBlitRow_opts_arm.h', | 81 '../src/opts/SkBlitRow_opts_arm.h', |
| 82 '../src/opts/SkBlurImage_opts_none.cpp', |
81 '../src/opts/SkMorphology_opts_none.cpp', | 83 '../src/opts/SkMorphology_opts_none.cpp', |
82 '../src/opts/SkXfermode_opts_arm.cpp', | 84 '../src/opts/SkXfermode_opts_arm.cpp', |
83 ], | 85 ], |
84 'conditions': [ | 86 'conditions': [ |
85 [ 'arm_neon == 1 or arm_neon_optional == 1', { | 87 [ 'arm_neon == 1 or arm_neon_optional == 1', { |
86 'dependencies': [ | 88 'dependencies': [ |
87 'opts_neon', | 89 'opts_neon', |
88 ] | 90 ] |
89 }], | 91 }], |
90 [ 'skia_os == "ios"', { | 92 [ 'skia_os == "ios"', { |
91 'sources!': [ | 93 'sources!': [ |
92 # these fail to compile under xcode for ios | 94 # these fail to compile under xcode for ios |
93 '../src/opts/memset.arm.S', | 95 '../src/opts/memset.arm.S', |
94 '../src/opts/SkBitmapProcState_opts_arm.cpp', | 96 '../src/opts/SkBitmapProcState_opts_arm.cpp', |
95 '../src/opts/SkBlitRow_opts_arm.cpp', | 97 '../src/opts/SkBlitRow_opts_arm.cpp', |
96 ], | 98 ], |
97 }], | 99 }], |
98 ], | 100 ], |
99 }], | 101 }], |
100 [ '(skia_arch_type == "arm" and arm_version < 7) or (skia_os == "ios")',
{ | 102 [ '(skia_arch_type == "arm" and arm_version < 7) or (skia_os == "ios")',
{ |
101 'sources': [ | 103 'sources': [ |
102 '../src/opts/SkBitmapProcState_opts_none.cpp', | 104 '../src/opts/SkBitmapProcState_opts_none.cpp', |
103 '../src/opts/SkBlitMask_opts_none.cpp', | 105 '../src/opts/SkBlitMask_opts_none.cpp', |
104 '../src/opts/SkBlitRow_opts_none.cpp', | 106 '../src/opts/SkBlitRow_opts_none.cpp', |
| 107 '../src/opts/SkBlurImage_opts_none.cpp', |
105 '../src/opts/SkMorphology_opts_none.cpp', | 108 '../src/opts/SkMorphology_opts_none.cpp', |
106 '../src/opts/SkUtils_opts_none.cpp', | 109 '../src/opts/SkUtils_opts_none.cpp', |
107 '../src/opts/SkXfermode_opts_none.cpp', | 110 '../src/opts/SkXfermode_opts_none.cpp', |
108 ], | 111 ], |
109 }], | 112 }], |
110 ], | 113 ], |
111 }, | 114 }, |
112 # For the same lame reasons as what is done for skia_opts, we have to | 115 # For the same lame reasons as what is done for skia_opts, we have to |
113 # create another target specifically for SSSE3 code as we would not want | 116 # create another target specifically for SSSE3 code as we would not want |
114 # to compile the SSE2 code with -mssse3 which would potentially allow | 117 # to compile the SSE2 code with -mssse3 which would potentially allow |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 ], | 183 ], |
181 }, | 184 }, |
182 ], | 185 ], |
183 } | 186 } |
184 | 187 |
185 # Local Variables: | 188 # Local Variables: |
186 # tab-width:2 | 189 # tab-width:2 |
187 # indent-tabs-mode:nil | 190 # indent-tabs-mode:nil |
188 # End: | 191 # End: |
189 # vim: set expandtab tabstop=2 shiftwidth=2: | 192 # vim: set expandtab tabstop=2 shiftwidth=2: |
OLD | NEW |