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

Side by Side Diff: webrtc/modules/audio_processing/BUILD.gn

Issue 2550563003: Split targets mixing .c and .cc sources. (Closed)
Patch Set: Rebased Created 4 years 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 | « webrtc/modules/audio_device/BUILD.gn ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 1 # Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
2 # 2 #
3 # Use of this source code is governed by a BSD-style license 3 # Use of this source code is governed by a BSD-style license
4 # that can be found in the LICENSE file in the root of the source 4 # that can be found in the LICENSE file in the root of the source
5 # tree. An additional intellectual property rights grant can be found 5 # tree. An additional intellectual property rights grant can be found
6 # in the file PATENTS. All contributing project authors may 6 # in the file PATENTS. All contributing project authors may
7 # be found in the AUTHORS file in the root of the source tree. 7 # be found in the AUTHORS file in the root of the source tree.
8 8
9 import("//build/config/arm.gni") 9 import("//build/config/arm.gni")
10 import("//third_party/protobuf/proto_library.gni") 10 import("//third_party/protobuf/proto_library.gni")
(...skipping 17 matching lines...) Expand all
28 "aec/echo_cancellation.h", 28 "aec/echo_cancellation.h",
29 "aecm/aecm_core.cc", 29 "aecm/aecm_core.cc",
30 "aecm/aecm_core.h", 30 "aecm/aecm_core.h",
31 "aecm/echo_control_mobile.cc", 31 "aecm/echo_control_mobile.cc",
32 "aecm/echo_control_mobile.h", 32 "aecm/echo_control_mobile.h",
33 "agc/agc.cc", 33 "agc/agc.cc",
34 "agc/agc.h", 34 "agc/agc.h",
35 "agc/agc_manager_direct.cc", 35 "agc/agc_manager_direct.cc",
36 "agc/agc_manager_direct.h", 36 "agc/agc_manager_direct.h",
37 "agc/gain_map_internal.h", 37 "agc/gain_map_internal.h",
38 "agc/legacy/analog_agc.c",
39 "agc/legacy/analog_agc.h",
40 "agc/legacy/digital_agc.c",
41 "agc/legacy/digital_agc.h",
42 "agc/legacy/gain_control.h",
43 "agc/loudness_histogram.cc", 38 "agc/loudness_histogram.cc",
44 "agc/loudness_histogram.h", 39 "agc/loudness_histogram.h",
45 "agc/utility.cc", 40 "agc/utility.cc",
46 "agc/utility.h", 41 "agc/utility.h",
47 "audio_buffer.cc", 42 "audio_buffer.cc",
48 "audio_buffer.h", 43 "audio_buffer.h",
49 "audio_processing_impl.cc", 44 "audio_processing_impl.cc",
50 "audio_processing_impl.h", 45 "audio_processing_impl.h",
51 "beamformer/array_util.cc", 46 "beamformer/array_util.cc",
52 "beamformer/array_util.h", 47 "beamformer/array_util.h",
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 "voice_detection_impl.cc", 156 "voice_detection_impl.cc",
162 "voice_detection_impl.h", 157 "voice_detection_impl.h",
163 ] 158 ]
164 159
165 defines = [] 160 defines = []
166 deps = [ 161 deps = [
167 "../..:webrtc_common", 162 "../..:webrtc_common",
168 "../../audio/utility:audio_frame_operations", 163 "../../audio/utility:audio_frame_operations",
169 "../audio_coding:isac", 164 "../audio_coding:isac",
170 ] 165 ]
166 public_deps = [
167 ":audio_processing_c",
168 ]
171 169
172 if (apm_debug_dump) { 170 if (apm_debug_dump) {
173 defines += [ "WEBRTC_APM_DEBUG_DUMP=1" ] 171 defines += [ "WEBRTC_APM_DEBUG_DUMP=1" ]
174 } else { 172 } else {
175 defines += [ "WEBRTC_APM_DEBUG_DUMP=0" ] 173 defines += [ "WEBRTC_APM_DEBUG_DUMP=0" ]
176 } 174 }
177 175
178 if (aec_untrusted_delay_for_testing) { 176 if (aec_untrusted_delay_for_testing) {
179 defines += [ "WEBRTC_UNTRUSTED_DELAY" ] 177 defines += [ "WEBRTC_UNTRUSTED_DELAY" ]
180 } 178 }
(...skipping 10 matching lines...) Expand all
191 "intelligibility/intelligibility_enhancer.h", 189 "intelligibility/intelligibility_enhancer.h",
192 "intelligibility/intelligibility_utils.cc", 190 "intelligibility/intelligibility_utils.cc",
193 "intelligibility/intelligibility_utils.h", 191 "intelligibility/intelligibility_utils.h",
194 ] 192 ]
195 } else { 193 } else {
196 defines += [ "WEBRTC_INTELLIGIBILITY_ENHANCER=0" ] 194 defines += [ "WEBRTC_INTELLIGIBILITY_ENHANCER=0" ]
197 } 195 }
198 196
199 if (rtc_prefer_fixed_point) { 197 if (rtc_prefer_fixed_point) {
200 defines += [ "WEBRTC_NS_FIXED" ] 198 defines += [ "WEBRTC_NS_FIXED" ]
201 sources += [
202 "ns/noise_suppression_x.c",
203 "ns/noise_suppression_x.h",
204 "ns/nsx_core.c",
205 "ns/nsx_core.h",
206 "ns/nsx_defines.h",
207 ]
208 if (current_cpu == "mipsel") {
209 sources += [ "ns/nsx_core_mips.c" ]
210 } else {
211 sources += [ "ns/nsx_core_c.c" ]
212 }
213 } else { 199 } else {
214 defines += [ "WEBRTC_NS_FLOAT" ] 200 defines += [ "WEBRTC_NS_FLOAT" ]
215 sources += [
216 "ns/defines.h",
217 "ns/noise_suppression.c",
218 "ns/noise_suppression.h",
219 "ns/ns_core.c",
220 "ns/ns_core.h",
221 "ns/windows_private.h",
222 ]
223 } 201 }
224 202
225 if (current_cpu == "x86" || current_cpu == "x64") { 203 if (current_cpu == "x86" || current_cpu == "x64") {
226 deps += [ ":audio_processing_sse2" ] 204 deps += [ ":audio_processing_sse2" ]
227 } 205 }
228 206
229 if (rtc_build_with_neon) { 207 if (rtc_build_with_neon) {
230 deps += [ ":audio_processing_neon" ] 208 deps += [ ":audio_processing_neon" ]
231 } 209 }
232 210
(...skipping 12 matching lines...) Expand all
245 # TODO(jschuh): Bug 1348: fix this warning. 223 # TODO(jschuh): Bug 1348: fix this warning.
246 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] 224 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
247 225
248 deps += [ 226 deps += [
249 "../../base:rtc_base_approved", 227 "../../base:rtc_base_approved",
250 "../../common_audio", 228 "../../common_audio",
251 "../../system_wrappers", 229 "../../system_wrappers",
252 ] 230 ]
253 } 231 }
254 232
233 rtc_source_set("audio_processing_c") {
234 visibility = [ ":*" ] # Only targets in this file can depend on this.
235 sources = [
236 "agc/legacy/analog_agc.c",
237 "agc/legacy/analog_agc.h",
238 "agc/legacy/digital_agc.c",
239 "agc/legacy/digital_agc.h",
240 "agc/legacy/gain_control.h",
241 ]
242
243 if (rtc_prefer_fixed_point) {
244 sources += [
245 "ns/noise_suppression_x.c",
246 "ns/noise_suppression_x.h",
247 "ns/nsx_core.c",
248 "ns/nsx_core.h",
249 "ns/nsx_defines.h",
250 ]
251 if (current_cpu == "mipsel") {
252 sources += [ "ns/nsx_core_mips.c" ]
253 } else {
254 sources += [ "ns/nsx_core_c.c" ]
255 }
256 } else {
257 sources += [
258 "ns/defines.h",
259 "ns/noise_suppression.c",
260 "ns/noise_suppression.h",
261 "ns/ns_core.c",
262 "ns/ns_core.h",
263 "ns/windows_private.h",
264 ]
265 }
266
267 deps = [
268 "../../base:rtc_base_approved",
269 "../../common_audio",
270 "../../system_wrappers",
271 ]
272 }
273
255 if (rtc_enable_protobuf) { 274 if (rtc_enable_protobuf) {
256 proto_library("audioproc_debug_proto") { 275 proto_library("audioproc_debug_proto") {
257 sources = [ 276 sources = [
258 "debug.proto", 277 "debug.proto",
259 ] 278 ]
260 279
261 proto_out_dir = "webrtc/modules/audio_processing" 280 proto_out_dir = "webrtc/modules/audio_processing"
262 } 281 }
263 } 282 }
264 283
(...skipping 15 matching lines...) Expand all
280 defines = [ "WEBRTC_APM_DEBUG_DUMP=0" ] 299 defines = [ "WEBRTC_APM_DEBUG_DUMP=0" ]
281 } 300 }
282 } 301 }
283 } 302 }
284 303
285 if (rtc_build_with_neon) { 304 if (rtc_build_with_neon) {
286 rtc_static_library("audio_processing_neon") { 305 rtc_static_library("audio_processing_neon") {
287 sources = [ 306 sources = [
288 "aec/aec_core_neon.cc", 307 "aec/aec_core_neon.cc",
289 "aecm/aecm_core_neon.cc", 308 "aecm/aecm_core_neon.cc",
290 "ns/nsx_core_neon.c",
291 "utility/ooura_fft_neon.cc", 309 "utility/ooura_fft_neon.cc",
292 "utility/ooura_fft_tables_neon_sse2.h", 310 "utility/ooura_fft_tables_neon_sse2.h",
293 ] 311 ]
294 312
295 if (current_cpu != "arm64") { 313 if (current_cpu != "arm64") {
296 # Enable compilation for the NEON instruction set. This is needed 314 # Enable compilation for the NEON instruction set. This is needed
297 # since //build/config/arm.gni only enables NEON for iOS, not Android. 315 # since //build/config/arm.gni only enables NEON for iOS, not Android.
298 # This provides the same functionality as webrtc/build/arm_neon.gypi. 316 # This provides the same functionality as webrtc/build/arm_neon.gypi.
299 suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ] 317 suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ]
300 cflags = [ "-mfpu=neon" ] 318 cflags = [ "-mfpu=neon" ]
301 } 319 }
302 320
303 # Disable LTO on NEON targets due to compiler bug. 321 # Disable LTO on NEON targets due to compiler bug.
304 # TODO(fdegans): Enable this. See crbug.com/408997. 322 # TODO(fdegans): Enable this. See crbug.com/408997.
305 if (rtc_use_lto) { 323 if (rtc_use_lto) {
306 cflags -= [ 324 cflags -= [
307 "-flto", 325 "-flto",
308 "-ffat-lto-objects", 326 "-ffat-lto-objects",
309 ] 327 ]
310 } 328 }
311 329
312 deps = [ 330 deps = [
313 "../../common_audio", 331 "../../common_audio",
314 ] 332 ]
333 public_deps = [
334 ":audio_processing_neon_c",
335 ]
315 336
316 if (apm_debug_dump) { 337 if (apm_debug_dump) {
317 defines = [ "WEBRTC_APM_DEBUG_DUMP=1" ] 338 defines = [ "WEBRTC_APM_DEBUG_DUMP=1" ]
318 } else { 339 } else {
319 defines = [ "WEBRTC_APM_DEBUG_DUMP=0" ] 340 defines = [ "WEBRTC_APM_DEBUG_DUMP=0" ]
320 } 341 }
321 } 342 }
343
344 rtc_static_library("audio_processing_neon_c") {
345 sources = [
346 "ns/nsx_core_neon.c",
347 ]
348
349 if (current_cpu != "arm64") {
350 # Enable compilation for the NEON instruction set. This is needed
351 # since //build/config/arm.gni only enables NEON for iOS, not Android.
352 # This provides the same functionality as webrtc/build/arm_neon.gypi.
353 suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ]
354 cflags = [ "-mfpu=neon" ]
355 }
356
357 # Disable LTO on NEON targets due to compiler bug.
358 # TODO(fdegans): Enable this. See crbug.com/408997.
359 if (rtc_use_lto) {
360 cflags -= [
361 "-flto",
362 "-ffat-lto-objects",
363 ]
364 }
365 }
322 } 366 }
323 367
324 if (rtc_include_tests) { 368 if (rtc_include_tests) {
325 group("audio_processing_tests") { 369 group("audio_processing_tests") {
326 testonly = true 370 testonly = true
327 public_deps = [ 371 public_deps = [
328 ":audioproc_f", 372 ":audioproc_f",
329 ":audioproc_test_utils", 373 ":audioproc_test_utils",
330 ":click_annotate", 374 ":click_annotate",
331 ":nonlinear_beamformer_test", 375 ":nonlinear_beamformer_test",
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 "test/protobuf_utils.cc", 519 "test/protobuf_utils.cc",
476 "test/protobuf_utils.h", 520 "test/protobuf_utils.h",
477 ] 521 ]
478 522
479 deps = [ 523 deps = [
480 ":audioproc_debug_proto", 524 ":audioproc_debug_proto",
481 ] 525 ]
482 } 526 }
483 } 527 }
484 } 528 }
OLDNEW
« no previous file with comments | « webrtc/modules/audio_device/BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698