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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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/SkUtils_opts_SSE2.cpp', | 54 '../src/opts/SkUtils_opts_SSE2.cpp', |
| 55 '../src/opts/SkXfermode_opts_none.cpp', |
55 ], | 56 ], |
56 }], | 57 }], |
57 [ 'skia_arch_type == "arm" and arm_version >= 7', { | 58 [ 'skia_arch_type == "arm" and arm_version >= 7', { |
58 # The assembly uses the frame pointer register (r7 in Thumb/r11 in | 59 # The assembly uses the frame pointer register (r7 in Thumb/r11 in |
59 # ARM), the compiler doesn't like that. | 60 # ARM), the compiler doesn't like that. |
60 'cflags!': [ | 61 'cflags!': [ |
61 '-fno-omit-frame-pointer', | 62 '-fno-omit-frame-pointer', |
62 '-mapcs-frame', | 63 '-mapcs-frame', |
63 '-mapcs', | 64 '-mapcs', |
64 ], | 65 ], |
65 'cflags': [ | 66 'cflags': [ |
66 '-fomit-frame-pointer', | 67 '-fomit-frame-pointer', |
67 '-mno-apcs-frame', | 68 '-mno-apcs-frame', |
68 ], | 69 ], |
69 'variables': { | 70 'variables': { |
70 'arm_neon_optional%': '<(arm_neon_optional>', | 71 'arm_neon_optional%': '<(arm_neon_optional>', |
71 }, | 72 }, |
72 'sources': [ | 73 'sources': [ |
73 '../src/opts/opts_check_arm.cpp', | 74 '../src/opts/opts_check_arm.cpp', |
74 '../src/opts/memset.arm.S', | 75 '../src/opts/memset.arm.S', |
75 '../src/opts/SkBitmapProcState_opts_arm.cpp', | 76 '../src/opts/SkBitmapProcState_opts_arm.cpp', |
76 '../src/opts/SkBlitMask_opts_arm.cpp', | 77 '../src/opts/SkBlitMask_opts_arm.cpp', |
77 '../src/opts/SkBlitRow_opts_arm.cpp', | 78 '../src/opts/SkBlitRow_opts_arm.cpp', |
78 '../src/opts/SkBlitRow_opts_arm.h', | 79 '../src/opts/SkBlitRow_opts_arm.h', |
| 80 '../src/opts/SkXfermode_opts_arm.cpp', |
79 ], | 81 ], |
80 'conditions': [ | 82 'conditions': [ |
81 [ 'arm_neon == 1 or arm_neon_optional == 1', { | 83 [ 'arm_neon == 1 or arm_neon_optional == 1', { |
82 'dependencies': [ | 84 'dependencies': [ |
83 'opts_neon', | 85 'opts_neon', |
84 ] | 86 ] |
85 }], | 87 }], |
86 [ 'skia_os == "ios"', { | 88 [ 'skia_os == "ios"', { |
87 'sources!': [ | 89 'sources!': [ |
88 # these fail to compile under xcode for ios | 90 # these fail to compile under xcode for ios |
89 '../src/opts/memset.arm.S', | 91 '../src/opts/memset.arm.S', |
90 '../src/opts/SkBitmapProcState_opts_arm.cpp', | 92 '../src/opts/SkBitmapProcState_opts_arm.cpp', |
91 '../src/opts/SkBlitRow_opts_arm.cpp', | 93 '../src/opts/SkBlitRow_opts_arm.cpp', |
92 ], | 94 ], |
93 }], | 95 }], |
94 ], | 96 ], |
95 }], | 97 }], |
96 [ '(skia_arch_type == "arm" and arm_version < 7) or (skia_os == "ios")',
{ | 98 [ '(skia_arch_type == "arm" and arm_version < 7) or (skia_os == "ios")',
{ |
97 'sources': [ | 99 'sources': [ |
98 '../src/opts/SkBitmapProcState_opts_none.cpp', | 100 '../src/opts/SkBitmapProcState_opts_none.cpp', |
99 '../src/opts/SkBlitMask_opts_none.cpp', | 101 '../src/opts/SkBlitMask_opts_none.cpp', |
100 '../src/opts/SkBlitRow_opts_none.cpp', | 102 '../src/opts/SkBlitRow_opts_none.cpp', |
101 '../src/opts/SkUtils_opts_none.cpp', | 103 '../src/opts/SkUtils_opts_none.cpp', |
| 104 '../src/opts/SkXfermode_opts_none.cpp', |
102 ], | 105 ], |
103 }], | 106 }], |
104 ], | 107 ], |
105 }, | 108 }, |
106 # For the same lame reasons as what is done for skia_opts, we have to | 109 # For the same lame reasons as what is done for skia_opts, we have to |
107 # create another target specifically for SSSE3 code as we would not want | 110 # create another target specifically for SSSE3 code as we would not want |
108 # to compile the SSE2 code with -mssse3 which would potentially allow | 111 # to compile the SSE2 code with -mssse3 which would potentially allow |
109 # gcc to generate SSSE3 code. | 112 # gcc to generate SSSE3 code. |
110 { | 113 { |
111 'target_name': 'opts_ssse3', | 114 'target_name': 'opts_ssse3', |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 ], | 176 ], |
174 }, | 177 }, |
175 ], | 178 ], |
176 } | 179 } |
177 | 180 |
178 # Local Variables: | 181 # Local Variables: |
179 # tab-width:2 | 182 # tab-width:2 |
180 # indent-tabs-mode:nil | 183 # indent-tabs-mode:nil |
181 # End: | 184 # End: |
182 # vim: set expandtab tabstop=2 shiftwidth=2: | 185 # vim: set expandtab tabstop=2 shiftwidth=2: |
OLD | NEW |