OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 import("//build/config/arm.gni") | 5 import("//build/config/arm.gni") |
| 6 import("//build/config/sanitizers/sanitizers.gni") |
6 | 7 |
7 config("libwebp_config") { | 8 config("libwebp_config") { |
8 include_dirs = [ "." ] | 9 include_dirs = [ "." ] |
9 } | 10 } |
10 | 11 |
11 use_dsp_neon = | 12 use_dsp_neon = |
12 current_cpu == "arm64" || (current_cpu == "arm" && arm_version >= 7 && | 13 current_cpu == "arm64" || (current_cpu == "arm" && arm_version >= 7 && |
13 (arm_use_neon || arm_optionally_use_neon)) | 14 (arm_use_neon || arm_optionally_use_neon)) |
14 | 15 |
15 source_set("libwebp_dec") { | 16 source_set("libwebp_dec") { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 configs -= [ "//build/config/compiler:chromium_code" ] | 48 configs -= [ "//build/config/compiler:chromium_code" ] |
48 configs += [ "//build/config/compiler:no_chromium_code" ] | 49 configs += [ "//build/config/compiler:no_chromium_code" ] |
49 deps = [ | 50 deps = [ |
50 ":libwebp_utils", | 51 ":libwebp_utils", |
51 ] | 52 ] |
52 } | 53 } |
53 | 54 |
54 source_set("libwebp_dsp") { | 55 source_set("libwebp_dsp") { |
55 sources = [ | 56 sources = [ |
56 "dsp/alpha_processing.c", | 57 "dsp/alpha_processing.c", |
57 "dsp/alpha_processing_sse2.c", | 58 "dsp/alpha_processing_mips_dsp_r2.c", |
| 59 "dsp/argb.c", |
| 60 "dsp/argb_mips_dsp_r2.c", |
| 61 "dsp/cost.c", |
| 62 "dsp/cost_mips32.c", |
| 63 "dsp/cost_mips_dsp_r2.c", |
58 "dsp/cpu.c", | 64 "dsp/cpu.c", |
59 "dsp/dec.c", | 65 "dsp/dec.c", |
60 "dsp/dec_clip_tables.c", | 66 "dsp/dec_clip_tables.c", |
61 "dsp/dec_mips32.c", | 67 "dsp/dec_mips32.c", |
62 "dsp/dec_sse2.c", | 68 "dsp/dec_mips_dsp_r2.c", |
63 "dsp/enc.c", | 69 "dsp/enc.c", |
64 "dsp/enc_avx2.c", | 70 "dsp/enc_avx2.c", |
65 "dsp/enc_mips32.c", | 71 "dsp/enc_mips32.c", |
66 "dsp/enc_sse2.c", | 72 "dsp/enc_mips_dsp_r2.c", |
| 73 "dsp/filters.c", |
| 74 "dsp/filters_mips_dsp_r2.c", |
67 "dsp/lossless.c", | 75 "dsp/lossless.c", |
68 "dsp/lossless_mips32.c", | 76 "dsp/lossless_enc.c", |
69 "dsp/lossless_sse2.c", | 77 "dsp/lossless_enc_mips32.c", |
| 78 "dsp/lossless_enc_mips_dsp_r2.c", |
| 79 "dsp/lossless_mips_dsp_r2.c", |
| 80 "dsp/rescaler.c", |
| 81 "dsp/rescaler_mips32.c", |
| 82 "dsp/rescaler_mips_dsp_r2.c", |
70 "dsp/upsampling.c", | 83 "dsp/upsampling.c", |
71 "dsp/upsampling_sse2.c", | 84 "dsp/upsampling_mips_dsp_r2.c", |
72 "dsp/yuv.c", | 85 "dsp/yuv.c", |
73 "dsp/yuv_mips32.c", | 86 "dsp/yuv_mips32.c", |
74 "dsp/yuv_sse2.c", | 87 "dsp/yuv_mips_dsp_r2.c", |
75 ] | 88 ] |
76 configs -= [ "//build/config/compiler:chromium_code" ] | 89 configs -= [ "//build/config/compiler:chromium_code" ] |
77 configs += [ "//build/config/compiler:no_chromium_code" ] | 90 configs += [ "//build/config/compiler:no_chromium_code" ] |
78 | 91 |
79 all_dependent_configs = [ ":libwebp_config" ] | 92 all_dependent_configs = [ ":libwebp_config" ] |
80 deps = [ | 93 deps = [ |
| 94 ":libwebp_dsp_sse2", |
| 95 ":libwebp_dsp_sse41", |
81 ":libwebp_utils", | 96 ":libwebp_utils", |
82 ] | 97 ] |
83 if (is_android) { | 98 if (is_android) { |
84 deps += [ "//third_party/android_tools:cpu_features" ] | 99 deps += [ "//third_party/android_tools:cpu_features" ] |
85 | 100 |
86 configs -= [ "//build/config/android:default_cygprofile_instrumentation" ] | 101 configs -= [ "//build/config/android:default_cygprofile_instrumentation" ] |
87 configs += [ "//build/config/android:no_cygprofile_instrumentation" ] | 102 configs += [ "//build/config/android:no_cygprofile_instrumentation" ] |
88 } | 103 } |
| 104 if (current_cpu == "x86" || current_cpu == "x64") { |
| 105 defines = [ |
| 106 "WEBP_HAVE_SSE2", |
| 107 "WEBP_HAVE_SSE41", |
| 108 ] |
| 109 } |
| 110 } |
| 111 |
| 112 source_set("libwebp_dsp_sse41") { |
| 113 sources = [ |
| 114 "dsp/alpha_processing_sse41.c", |
| 115 "dsp/dec_sse41.c", |
| 116 "dsp/enc_sse41.c", |
| 117 "dsp/lossless_enc_sse41.c", |
| 118 ] |
| 119 configs -= [ "//build/config/compiler:chromium_code" ] |
| 120 configs += [ "//build/config/compiler:no_chromium_code" ] |
| 121 |
| 122 all_dependent_configs = [ ":libwebp_config" ] |
| 123 if (!is_msan) { |
| 124 if ((current_cpu == "x86" || current_cpu == "x64") && |
| 125 (!is_win || is_clang)) { |
| 126 cflags = [ "-msse4.1" ] |
| 127 } |
| 128 } |
| 129 } |
| 130 |
| 131 source_set("libwebp_dsp_sse2") { |
| 132 sources = [ |
| 133 "dsp/alpha_processing_sse2.c", |
| 134 "dsp/argb_sse2.c", |
| 135 "dsp/cost_sse2.c", |
| 136 "dsp/dec_sse2.c", |
| 137 "dsp/enc_sse2.c", |
| 138 "dsp/filters_sse2.c", |
| 139 "dsp/lossless_enc_sse2.c", |
| 140 "dsp/lossless_sse2.c", |
| 141 "dsp/rescaler_sse2.c", |
| 142 "dsp/upsampling_sse2.c", |
| 143 "dsp/yuv_sse2.c", |
| 144 ] |
| 145 configs -= [ "//build/config/compiler:chromium_code" ] |
| 146 configs += [ "//build/config/compiler:no_chromium_code" ] |
| 147 |
| 148 all_dependent_configs = [ ":libwebp_config" ] |
| 149 if (!is_msan) { |
| 150 if ((current_cpu == "x86" || current_cpu == "x64") && |
| 151 (!is_win || is_clang)) { |
| 152 cflags = [ "-msse2" ] |
| 153 } |
| 154 } |
89 } | 155 } |
90 | 156 |
91 if (use_dsp_neon) { | 157 if (use_dsp_neon) { |
92 source_set("libwebp_dsp_neon") { | 158 source_set("libwebp_dsp_neon") { |
93 sources = [ | 159 sources = [ |
94 "dsp/dec_neon.c", | 160 "dsp/dec_neon.c", |
95 "dsp/enc_neon.c", | 161 "dsp/enc_neon.c", |
| 162 "dsp/lossless_enc_neon.c", |
96 "dsp/lossless_neon.c", | 163 "dsp/lossless_neon.c", |
| 164 "dsp/rescaler_neon.c", |
97 "dsp/upsampling_neon.c", | 165 "dsp/upsampling_neon.c", |
98 ] | 166 ] |
99 | 167 |
100 include_dirs = [ "." ] | 168 include_dirs = [ "." ] |
101 | 169 |
102 if (current_cpu == "arm") { | 170 if (current_cpu == "arm") { |
103 # behavior similar to *.c.neon in an Android.mk | 171 # behavior similar to *.c.neon in an Android.mk |
104 configs -= [ "//build/config/compiler:compiler_arm_fpu" ] | 172 configs -= [ "//build/config/compiler:compiler_arm_fpu" ] |
105 cflags = [ "-mfpu=neon" ] | 173 cflags = [ "-mfpu=neon" ] |
106 } else if (current_cpu == "arm64") { | 174 } else if (current_cpu == "arm64") { |
107 # avoid an ICE with gcc-4.9: b/15574841 | 175 # avoid an ICE with gcc-4.9: b/15574841 |
108 cflags = [ "-frename-registers" ] | 176 cflags = [ "-frename-registers" ] |
109 } | 177 } |
110 | 178 |
111 if (is_android) { | 179 if (is_android) { |
112 configs -= [ "//build/config/android:default_cygprofile_instrumentation" ] | 180 configs -= [ "//build/config/android:default_cygprofile_instrumentation" ] |
113 configs += [ "//build/config/android:no_cygprofile_instrumentation" ] | 181 configs += [ "//build/config/android:no_cygprofile_instrumentation" ] |
114 } | 182 } |
115 } | 183 } |
116 } # use_dsp_neon | 184 } # use_dsp_neon |
117 | 185 |
118 source_set("libwebp_enc") { | 186 source_set("libwebp_enc") { |
119 sources = [ | 187 sources = [ |
120 "enc/alpha.c", | 188 "enc/alpha.c", |
121 "enc/analysis.c", | 189 "enc/analysis.c", |
122 "enc/backward_references.c", | 190 "enc/backward_references.c", |
123 "enc/config.c", | 191 "enc/config.c", |
124 "enc/cost.c", | 192 "enc/cost.c", |
| 193 "enc/delta_palettization.c", |
125 "enc/filter.c", | 194 "enc/filter.c", |
126 "enc/frame.c", | 195 "enc/frame.c", |
127 "enc/histogram.c", | 196 "enc/histogram.c", |
128 "enc/iterator.c", | 197 "enc/iterator.c", |
| 198 "enc/near_lossless.c", |
129 "enc/picture.c", | 199 "enc/picture.c", |
130 "enc/picture_csp.c", | 200 "enc/picture_csp.c", |
131 "enc/picture_psnr.c", | 201 "enc/picture_psnr.c", |
132 "enc/picture_rescale.c", | 202 "enc/picture_rescale.c", |
133 "enc/picture_tools.c", | 203 "enc/picture_tools.c", |
134 "enc/quant.c", | 204 "enc/quant.c", |
135 "enc/syntax.c", | 205 "enc/syntax.c", |
136 "enc/token.c", | 206 "enc/token.c", |
137 "enc/tree.c", | 207 "enc/tree.c", |
138 "enc/vp8l.c", | 208 "enc/vp8l.c", |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 ":libwebp_demux", | 254 ":libwebp_demux", |
185 ":libwebp_dsp", | 255 ":libwebp_dsp", |
186 ":libwebp_enc", | 256 ":libwebp_enc", |
187 ":libwebp_utils", | 257 ":libwebp_utils", |
188 ] | 258 ] |
189 public_configs = [ ":libwebp_config" ] | 259 public_configs = [ ":libwebp_config" ] |
190 if (use_dsp_neon) { | 260 if (use_dsp_neon) { |
191 deps += [ ":libwebp_dsp_neon" ] | 261 deps += [ ":libwebp_dsp_neon" ] |
192 } | 262 } |
193 } | 263 } |
OLD | NEW |