Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

661 lines
18 KiB
Plaintext
Raw Normal View History

# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
Reland of Moving webrtc.gni up one level from build/ (patchset #1 id:1 of https://codereview.webrtc.org/2657563002/ ) Reason for revert: Starting to work on a fix (it seems that there are third_party dependencies that depends on the path to the webrtc.gni file) Original issue's description: > Revert of Moving webrtc.gni up one level from build/ (patchset #1 id:1 of https://codereview.webrtc.org/2651543003/ ) > > Reason for revert: > This was causing the following failure: https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Builder/builds/838/steps/generate_build_files/logs/stdio > > Original issue's description: > > Moving webrtc.gni up one level from build/ > > > > BUG=webrtc:7030 > > > > Review-Url: https://codereview.webrtc.org/2651543003 > > Cr-Commit-Position: refs/heads/master@{#16241} > > Committed: https://chromium.googlesource.com/external/webrtc/+/35a32700fc9b5d932ddbd528c12f59c3274e4774 > > TBR=kjellander@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:7030 > > Review-Url: https://codereview.webrtc.org/2657563002 > Cr-Commit-Position: refs/heads/master@{#16244} > Committed: https://chromium.googlesource.com/external/webrtc/+/69dc7dbe247ead087f3bae0eb7e23f27f0de1ec3 TBR=kjellander@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:7030 Review-Url: https://codereview.webrtc.org/2654773002 Cr-Commit-Position: refs/heads/master@{#16247}
2017-01-24 06:58:22 -08:00
import("../../webrtc.gni")
if (!build_with_mozilla) {
import("//third_party/protobuf/proto_library.gni")
}
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
declare_args() {
# Disables the usual mode where we trust the reported system delay
# values the AEC receives. The corresponding define is set appropriately
# in the code, but it can be force-enabled here for testing.
aec_untrusted_delay_for_testing = false
}
config("apm_debug_dump") {
if (apm_debug_dump) {
defines = [ "WEBRTC_APM_DEBUG_DUMP=1" ]
} else {
defines = [ "WEBRTC_APM_DEBUG_DUMP=0" ]
}
}
rtc_static_library("audio_processing") {
Revert "Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*""" This reverts commit c73e1f437889d882cbf2987f7fb3a029a6150613. Reason for revert: The problem with failed deps in chrome content/renderer had already been fixed in https://webrtc-review.googlesource.com/c/src/+/38660 Original change's description: > Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*"" > > This reverts commit 588c548657b3ddf76e7b3f241263eef7f5799f16. > > Reason for revert: > > Breaks Chrome FYI: > > /b/c/b/Linux_Builder/src/buildtools/linux64/gn gen //out/Release --check > -> returned 1 > ERROR at //build/split_static_library.gni:12:5: Dependency not allowed. > static_library(target_name) { > ^---------------------------- > The item //content/renderer:renderer > can not depend on //third_party/webrtc/media:rtc_internal_video_codecs > because it is not in //third_party/webrtc/media:rtc_internal_video_codecs's visibility list: [ > //third_party/webrtc/* > //third_party/webrtc_overrides/* > ] > > https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.webrtc.fyi%2FLinux_Builder%2F23560%2F%2B%2Frecipes%2Fsteps%2Fgenerate_build_files%2F0%2Fstdout > > Original change's description: > > GN rtc_* templates: Set default visibility to webrtc_root + "/*" > > > > This means that by default, targets are visible to everything under > > the WebRTC root, but not visible to anything else. > > > > API targets are manually tagged with visibility "*", so that targets > > outside the WebRTC tree can see them. > > > > BUG=webrtc:8254 > > > > Change-Id: Icdbee6e0d22d93240ff2fb530c8f9dc48e351509 > > Reviewed-on: https://webrtc-review.googlesource.com/24140 > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> > > Commit-Queue: Karl Wiberg <kwiberg@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#21548} > > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org > > Change-Id: I06620ce3d6f67482935c22efa231dd6cab91625a > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:8254 > Reviewed-on: https://webrtc-review.googlesource.com/38760 > Reviewed-by: Per Kjellander <perkj@webrtc.org> > Commit-Queue: Per Kjellander <perkj@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#21555} TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,perkj@webrtc.org Change-Id: I6f720078ce21bd172e0a6471bae8c4c011e4a657 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:8254 Reviewed-on: https://webrtc-review.googlesource.com/38860 Reviewed-by: Per Kjellander <perkj@webrtc.org> Commit-Queue: Per Kjellander <perkj@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21558}
2018-01-10 15:54:53 +00:00
visibility = [ "*" ]
configs += [ ":apm_debug_dump" ]
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
sources = [
"audio_buffer.cc",
"audio_buffer.h",
"audio_processing_impl.cc",
"audio_processing_impl.h",
"common.h",
"echo_cancellation_impl.cc",
"echo_cancellation_impl.h",
"echo_cancellation_proxy.cc",
"echo_cancellation_proxy.h",
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
"echo_control_mobile_impl.cc",
"echo_control_mobile_impl.h",
"echo_control_mobile_proxy.cc",
"echo_control_mobile_proxy.h",
"echo_detector/circular_buffer.cc",
"echo_detector/circular_buffer.h",
"echo_detector/mean_variance_estimator.cc",
"echo_detector/mean_variance_estimator.h",
"echo_detector/moving_max.cc",
"echo_detector/moving_max.h",
"echo_detector/normalized_covariance_estimator.cc",
"echo_detector/normalized_covariance_estimator.h",
"gain_control_for_experimental_agc.cc",
"gain_control_for_experimental_agc.h",
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
"gain_control_impl.cc",
"gain_control_impl.h",
"gain_controller2.cc",
"gain_controller2.h",
"include/aec_dump.cc",
"include/aec_dump.h",
"include/audio_processing.cc",
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
"include/audio_processing.h",
"include/config.cc",
"include/config.h",
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
"level_estimator_impl.cc",
"level_estimator_impl.h",
"low_cut_filter.cc",
"low_cut_filter.h",
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
"noise_suppression_impl.cc",
"noise_suppression_impl.h",
"render_queue_item_verifier.h",
"residual_echo_detector.cc",
"residual_echo_detector.h",
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
"rms_level.cc",
"rms_level.h",
"splitting_filter.cc",
"splitting_filter.h",
"three_band_filter_bank.cc",
"three_band_filter_bank.h",
"transient/common.h",
"transient/daubechies_8_wavelet_coeffs.h",
"transient/dyadic_decimator.h",
"transient/moving_moments.cc",
"transient/moving_moments.h",
"transient/transient_detector.cc",
"transient/transient_detector.h",
"transient/transient_suppressor.cc",
"transient/transient_suppressor.h",
"transient/wpd_node.cc",
"transient/wpd_node.h",
"transient/wpd_tree.cc",
"transient/wpd_tree.h",
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
"typing_detection.cc",
"typing_detection.h",
"voice_detection_impl.cc",
"voice_detection_impl.h",
]
defines = []
deps = [
":apm_logging",
":audio_frame_view",
":audio_generator_interface",
":audio_processing_c",
":audio_processing_statistics",
":gain_control_interface",
"../..:webrtc_common",
"../../api:array_view",
"../../api/audio:aec3_config",
"../../api/audio:audio_frame_api",
"../../api/audio:echo_control",
"../../audio/utility:audio_frame_operations",
"../../common_audio:common_audio_c",
"../../common_audio/third_party/fft4g:fft4g",
"../../rtc_base:checks",
"../../rtc_base:deprecation",
"../../rtc_base:gtest_prod",
"../../rtc_base:safe_minmax",
"../../rtc_base:sanitizer",
"../../rtc_base/system:arch",
"../../system_wrappers:cpu_features_api",
"../../system_wrappers:field_trial_api",
"../../system_wrappers:metrics_api",
"aec:aec",
"aec:aec_core",
"aecm:aecm_core",
"agc",
"agc:agc_legacy_c",
"agc2:adaptive_digital",
"agc2:fixed_digital",
"agc2:gain_applier",
"vad",
"//third_party/abseil-cpp/absl/types:optional",
]
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
if (aec_untrusted_delay_for_testing) {
defines += [ "WEBRTC_UNTRUSTED_DELAY" ]
}
if (rtc_prefer_fixed_point) {
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
defines += [ "WEBRTC_NS_FIXED" ]
} else {
defines += [ "WEBRTC_NS_FLOAT" ]
}
deps += [
"../../common_audio",
"../../common_audio:fir_filter",
"../../common_audio:fir_filter_factory",
"../../rtc_base:rtc_base_approved",
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
"../../system_wrappers",
]
}
rtc_source_set("gain_control_interface") {
sources = [
"include/gain_control.h",
]
}
rtc_source_set("audio_processing_statistics") {
Revert "Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*""" This reverts commit c73e1f437889d882cbf2987f7fb3a029a6150613. Reason for revert: The problem with failed deps in chrome content/renderer had already been fixed in https://webrtc-review.googlesource.com/c/src/+/38660 Original change's description: > Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*"" > > This reverts commit 588c548657b3ddf76e7b3f241263eef7f5799f16. > > Reason for revert: > > Breaks Chrome FYI: > > /b/c/b/Linux_Builder/src/buildtools/linux64/gn gen //out/Release --check > -> returned 1 > ERROR at //build/split_static_library.gni:12:5: Dependency not allowed. > static_library(target_name) { > ^---------------------------- > The item //content/renderer:renderer > can not depend on //third_party/webrtc/media:rtc_internal_video_codecs > because it is not in //third_party/webrtc/media:rtc_internal_video_codecs's visibility list: [ > //third_party/webrtc/* > //third_party/webrtc_overrides/* > ] > > https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.webrtc.fyi%2FLinux_Builder%2F23560%2F%2B%2Frecipes%2Fsteps%2Fgenerate_build_files%2F0%2Fstdout > > Original change's description: > > GN rtc_* templates: Set default visibility to webrtc_root + "/*" > > > > This means that by default, targets are visible to everything under > > the WebRTC root, but not visible to anything else. > > > > API targets are manually tagged with visibility "*", so that targets > > outside the WebRTC tree can see them. > > > > BUG=webrtc:8254 > > > > Change-Id: Icdbee6e0d22d93240ff2fb530c8f9dc48e351509 > > Reviewed-on: https://webrtc-review.googlesource.com/24140 > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> > > Commit-Queue: Karl Wiberg <kwiberg@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#21548} > > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org > > Change-Id: I06620ce3d6f67482935c22efa231dd6cab91625a > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:8254 > Reviewed-on: https://webrtc-review.googlesource.com/38760 > Reviewed-by: Per Kjellander <perkj@webrtc.org> > Commit-Queue: Per Kjellander <perkj@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#21555} TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,perkj@webrtc.org Change-Id: I6f720078ce21bd172e0a6471bae8c4c011e4a657 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:8254 Reviewed-on: https://webrtc-review.googlesource.com/38860 Reviewed-by: Per Kjellander <perkj@webrtc.org> Commit-Queue: Per Kjellander <perkj@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21558}
2018-01-10 15:54:53 +00:00
visibility = [ "*" ]
sources = [
"include/audio_processing_statistics.cc",
"include/audio_processing_statistics.h",
]
deps = [
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_source_set("audio_frame_view") {
sources = [
"include/audio_frame_view.h",
]
deps = [
"../../api:array_view",
]
}
rtc_source_set("audio_generator_interface") {
visibility = [ "*" ]
sources = [
"include/audio_generator.h",
]
deps = [
":audio_frame_view",
"../../rtc_base:rtc_base_approved",
"../../system_wrappers:system_wrappers",
]
}
rtc_source_set("audio_generator_factory") {
visibility = [ "*" ]
sources = [
"include/audio_generator_factory.cc",
"include/audio_generator_factory.h",
]
deps = [
":audio_generator_interface",
":file_audio_generator",
"../../common_audio:common_audio",
"../../rtc_base:rtc_base_approved",
"../../system_wrappers:system_wrappers",
"//third_party/abseil-cpp/absl/memory",
]
}
rtc_source_set("file_audio_generator") {
sources = [
"audio_generator/file_audio_generator.cc",
"audio_generator/file_audio_generator.h",
]
deps = [
":audio_generator_interface",
"../../common_audio:common_audio",
"../../rtc_base:rtc_base_approved",
"../../system_wrappers:system_wrappers",
]
}
rtc_source_set("audio_processing_c") {
visibility = [ ":*" ] # Only targets in this file can depend on this.
sources = []
if (rtc_prefer_fixed_point) {
sources += [
"ns/noise_suppression_x.c",
"ns/noise_suppression_x.h",
"ns/nsx_core.c",
"ns/nsx_core.h",
"ns/nsx_defines.h",
]
if (current_cpu == "mipsel") {
sources += [ "ns/nsx_core_mips.c" ]
} else {
sources += [ "ns/nsx_core_c.c" ]
}
} else {
sources += [
"ns/defines.h",
"ns/noise_suppression.c",
"ns/noise_suppression.h",
"ns/ns_core.c",
"ns/ns_core.h",
"ns/windows_private.h",
]
}
deps = [
"../..:webrtc_common",
"../../common_audio",
"../../common_audio:common_audio_c",
"../../common_audio/third_party/fft4g:fft4g",
"../../rtc_base:checks",
"../../rtc_base:rtc_base_approved",
"../../system_wrappers:cpu_features_api",
"agc:agc_legacy_c",
]
if (rtc_build_with_neon) {
sources += [ "ns/nsx_core_neon.c" ]
if (current_cpu != "arm64") {
# Enable compilation for the NEON instruction set.
suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ]
cflags = [ "-mfpu=neon" ]
}
# Disable LTO on NEON targets due to compiler bug.
# TODO(fdegans): Enable this. See crbug.com/408997.
if (rtc_use_lto) {
cflags -= [
"-flto",
"-ffat-lto-objects",
]
}
}
}
if (rtc_enable_protobuf) {
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
proto_library("audioproc_debug_proto") {
sources = [
"debug.proto",
]
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
proto_out_dir = "modules/audio_processing"
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
}
}
rtc_source_set("apm_logging") {
configs += [ ":apm_debug_dump" ]
sources = [
"logging/apm_data_dumper.cc",
"logging/apm_data_dumper.h",
]
deps = [
"../../api:array_view",
"../../common_audio:common_audio",
"../../rtc_base:rtc_base_approved",
"../../rtc_base:stringutils",
]
defines = []
}
if (rtc_include_tests) {
rtc_source_set("mocks") {
testonly = true
sources = [
"include/mock_audio_processing.h",
]
deps = [
":audio_processing",
":audio_processing_statistics",
"../../test:test_support",
]
}
GN: New conventions, default target and refactorings Introduce a convention on categorizing GN targets: 1. Production code 2. Tests 3. Examples 4. Tools The first two have targets spread out all over the tree, while the latter are isolated to examples/ and tools/ directories. Another new convention: Each directory's BUILD.gn file shall contain a target named similar to the directory name. This target shall contain the 'most common' production code, i.e. so that most consumers of the directory can depend on only the directory (which implicitly means that target in GN). //webrtc:webrtc_tests is changed to depend on all WebRTC tests. From now on, it's necessary to add new test targets to this dependency tree in order to get them compiled. Two new group targets are created: //webrtc/modules/audio_coding:audio_coding_tests //webrtc/modules/audio_processing:audio_processing_tests to reduce the long list of tests in //webrtc:webrtc_tests. Visibility on //webrtc:webrtc and //webrtc:webrtc_tests is restricted to the root target, to avoid circular dependencies due to the monolithic property of these targets (a problem we've had in the past). The 'root' target at the top level is renamed to 'default', which means GN will build this target instead of _all_ generated targets (see https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/faq.md#Can-I-control-what-targets-are-built-by-default). This target now depends on everything we want to build, meaning all targets now explicitly needs to be wired up from the root target in order to get build. Having this, the number of compiled objects on Android is decreased from 8855 to 6276. It also gives us better control over our build. BUG=webrtc:6440 TESTED=git cl try --clobber NOTRY=True Review-Url: https://codereview.webrtc.org/2441383002 Cr-Commit-Position: refs/heads/master@{#14821}
2016-10-28 05:44:03 -07:00
group("audio_processing_tests") {
testonly = true
deps = [
GN: New conventions, default target and refactorings Introduce a convention on categorizing GN targets: 1. Production code 2. Tests 3. Examples 4. Tools The first two have targets spread out all over the tree, while the latter are isolated to examples/ and tools/ directories. Another new convention: Each directory's BUILD.gn file shall contain a target named similar to the directory name. This target shall contain the 'most common' production code, i.e. so that most consumers of the directory can depend on only the directory (which implicitly means that target in GN). //webrtc:webrtc_tests is changed to depend on all WebRTC tests. From now on, it's necessary to add new test targets to this dependency tree in order to get them compiled. Two new group targets are created: //webrtc/modules/audio_coding:audio_coding_tests //webrtc/modules/audio_processing:audio_processing_tests to reduce the long list of tests in //webrtc:webrtc_tests. Visibility on //webrtc:webrtc and //webrtc:webrtc_tests is restricted to the root target, to avoid circular dependencies due to the monolithic property of these targets (a problem we've had in the past). The 'root' target at the top level is renamed to 'default', which means GN will build this target instead of _all_ generated targets (see https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/faq.md#Can-I-control-what-targets-are-built-by-default). This target now depends on everything we want to build, meaning all targets now explicitly needs to be wired up from the root target in order to get build. Having this, the number of compiled objects on Android is decreased from 8855 to 6276. It also gives us better control over our build. BUG=webrtc:6440 TESTED=git cl try --clobber NOTRY=True Review-Url: https://codereview.webrtc.org/2441383002 Cr-Commit-Position: refs/heads/master@{#14821}
2016-10-28 05:44:03 -07:00
":audioproc_test_utils",
":click_annotate",
":transient_suppression_test",
]
if (rtc_enable_protobuf) {
deps += [
":audioproc_f",
":audioproc_unittest_proto",
"aec_dump:aec_dump_unittests",
"test/conversational_speech",
"test/py_quality_assessment",
]
GN: New conventions, default target and refactorings Introduce a convention on categorizing GN targets: 1. Production code 2. Tests 3. Examples 4. Tools The first two have targets spread out all over the tree, while the latter are isolated to examples/ and tools/ directories. Another new convention: Each directory's BUILD.gn file shall contain a target named similar to the directory name. This target shall contain the 'most common' production code, i.e. so that most consumers of the directory can depend on only the directory (which implicitly means that target in GN). //webrtc:webrtc_tests is changed to depend on all WebRTC tests. From now on, it's necessary to add new test targets to this dependency tree in order to get them compiled. Two new group targets are created: //webrtc/modules/audio_coding:audio_coding_tests //webrtc/modules/audio_processing:audio_processing_tests to reduce the long list of tests in //webrtc:webrtc_tests. Visibility on //webrtc:webrtc and //webrtc:webrtc_tests is restricted to the root target, to avoid circular dependencies due to the monolithic property of these targets (a problem we've had in the past). The 'root' target at the top level is renamed to 'default', which means GN will build this target instead of _all_ generated targets (see https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/faq.md#Can-I-control-what-targets-are-built-by-default). This target now depends on everything we want to build, meaning all targets now explicitly needs to be wired up from the root target in order to get build. Having this, the number of compiled objects on Android is decreased from 8855 to 6276. It also gives us better control over our build. BUG=webrtc:6440 TESTED=git cl try --clobber NOTRY=True Review-Url: https://codereview.webrtc.org/2441383002 Cr-Commit-Position: refs/heads/master@{#14821}
2016-10-28 05:44:03 -07:00
}
}
rtc_source_set("audio_processing_unittests") {
testonly = true
configs += [ ":apm_debug_dump" ]
sources = [
"audio_buffer_unittest.cc",
"audio_frame_view_unittest.cc",
"config_unittest.cc",
"echo_cancellation_impl_unittest.cc",
"gain_controller2_unittest.cc",
"splitting_filter_unittest.cc",
"test/fake_recording_device_unittest.cc",
"transient/dyadic_decimator_unittest.cc",
"transient/file_utils.cc",
"transient/file_utils.h",
"transient/file_utils_unittest.cc",
"transient/moving_moments_unittest.cc",
"transient/transient_detector_unittest.cc",
"transient/transient_suppressor_unittest.cc",
"transient/wpd_node_unittest.cc",
"transient/wpd_tree_unittest.cc",
]
deps = [
":analog_mic_simulation",
":apm_logging",
":audio_frame_view",
":audio_processing",
":audioproc_test_utils",
":file_audio_generator_unittests",
":mocks",
"../..:webrtc_common",
"../../api:array_view",
"../../api/audio:aec3_config",
"../../api/audio:aec3_factory",
"../../common_audio:common_audio",
"../../common_audio:common_audio_c",
"../../rtc_base:checks",
"../../rtc_base:gtest_prod",
"../../rtc_base:protobuf_utils",
"../../rtc_base:rtc_base",
"../../rtc_base:rtc_base_approved",
"../../rtc_base:safe_minmax",
"../../rtc_base/system:arch",
"../../rtc_base/system:file_wrapper",
"../../system_wrappers",
"../../system_wrappers:cpu_features_api",
"../../test:fileutils",
"../../test:test_support",
"../audio_coding:neteq_input_audio_tools",
"aec:aec_core",
"aec:aec_unittests",
"aec_dump:mock_aec_dump_unittests",
"agc:agc_unittests",
"agc2:adaptive_digital_unittests",
"agc2:biquad_filter_unittests",
"agc2:fixed_digital_unittests",
"agc2:noise_estimator_unittests",
"agc2/rnn_vad:unittests",
"test/conversational_speech:unittest",
"utility:block_mean_calculator_unittest",
"utility:legacy_delay_estimator_unittest",
"vad:vad_unittests",
"//testing/gtest",
"//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/types:optional",
]
defines = []
if (rtc_prefer_fixed_point) {
defines += [ "WEBRTC_AUDIOPROC_FIXED_PROFILE" ]
} else {
defines += [ "WEBRTC_AUDIOPROC_FLOAT_PROFILE" ]
}
if (rtc_enable_protobuf) {
defines += [ "WEBRTC_AUDIOPROC_DEBUG_DUMP" ]
deps += [
":audioproc_debug_proto",
":audioproc_protobuf_utils",
":audioproc_test_utils",
":audioproc_unittest_proto",
"../../api/audio:audio_frame_api",
"../../rtc_base:rtc_base_tests_utils",
"../../rtc_base:rtc_task_queue",
"aec_dump",
"aec_dump:aec_dump_unittests",
]
sources += [
"audio_processing_impl_locking_unittest.cc",
"audio_processing_impl_unittest.cc",
"audio_processing_unittest.cc",
"echo_cancellation_bit_exact_unittest.cc",
"echo_control_mobile_unittest.cc",
"echo_detector/circular_buffer_unittest.cc",
"echo_detector/mean_variance_estimator_unittest.cc",
"echo_detector/moving_max_unittest.cc",
"echo_detector/normalized_covariance_estimator_unittest.cc",
"gain_control_unittest.cc",
"level_estimator_unittest.cc",
"low_cut_filter_unittest.cc",
"noise_suppression_unittest.cc",
"residual_echo_detector_unittest.cc",
"rms_level_unittest.cc",
"test/debug_dump_replayer.cc",
"test/debug_dump_replayer.h",
"test/debug_dump_test.cc",
"test/echo_canceller_test_tools.cc",
"test/echo_canceller_test_tools.h",
"test/echo_canceller_test_tools_unittest.cc",
"test/test_utils.h",
"voice_detection_unittest.cc",
]
}
if ((!build_with_chromium || is_win) && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
rtc_source_set("audio_processing_perf_tests") {
testonly = true
sources = [
"audio_processing_performance_unittest.cc",
]
deps = [
":audio_processing",
":audioproc_test_utils",
"../../api:array_view",
"../../rtc_base:protobuf_utils",
"../../rtc_base:rtc_base_approved",
"../../system_wrappers",
"../../test:perf_test",
"../../test:test_support",
]
}
rtc_source_set("file_audio_generator_unittests") {
testonly = true
sources = [
"audio_generator/file_audio_generator_unittest.cc",
]
deps = [
":audio_generator_factory",
":audio_processing",
":file_audio_generator",
"../../rtc_base:rtc_base_approved",
"../../test:fileutils",
"../../test:test_support",
]
}
rtc_source_set("analog_mic_simulation") {
sources = [
"test/fake_recording_device.cc",
"test/fake_recording_device.h",
]
deps = [
"../../api:array_view",
"../../api/audio:audio_frame_api",
"../../common_audio:common_audio",
"../../rtc_base:checks",
"../../rtc_base:rtc_base_approved",
"../../rtc_base:safe_minmax",
"agc:gain_map",
"//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/types:optional",
]
}
if (rtc_enable_protobuf) {
rtc_source_set("audioproc_f_impl") {
testonly = true
sources = [
"test/aec_dump_based_simulator.cc",
"test/aec_dump_based_simulator.h",
"test/audio_processing_simulator.cc",
"test/audio_processing_simulator.h",
"test/audioproc_float_impl.cc",
"test/audioproc_float_impl.h",
"test/wav_based_simulator.cc",
"test/wav_based_simulator.h",
]
deps = [
":analog_mic_simulation",
":audio_processing",
":audioproc_debug_proto",
":audioproc_protobuf_utils",
":audioproc_test_utils",
"../../api/audio:aec3_factory",
"../../common_audio:common_audio",
"../../rtc_base:checks",
"../../rtc_base:protobuf_utils",
"../../rtc_base:rtc_base_approved",
"../../rtc_base:rtc_json",
"../../rtc_base:rtc_task_queue",
"../../rtc_base:stringutils",
"../../system_wrappers",
"../../system_wrappers:system_wrappers_default",
"../../test:test_support",
"aec_dump",
"aec_dump:aec_dump_impl",
"//testing/gtest",
"//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/types:optional",
]
} # audioproc_f_impl
rtc_executable("audioproc_f") {
testonly = true
sources = [
"test/audioproc_float_main.cc",
]
deps = [
":audio_processing",
"../../api:audioproc_f_api",
"../../rtc_base:rtc_base_approved",
"//third_party/abseil-cpp/absl/memory",
]
} # audioproc_f
}
rtc_source_set("audioproc_test_utils") {
Revert "Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*""" This reverts commit c73e1f437889d882cbf2987f7fb3a029a6150613. Reason for revert: The problem with failed deps in chrome content/renderer had already been fixed in https://webrtc-review.googlesource.com/c/src/+/38660 Original change's description: > Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*"" > > This reverts commit 588c548657b3ddf76e7b3f241263eef7f5799f16. > > Reason for revert: > > Breaks Chrome FYI: > > /b/c/b/Linux_Builder/src/buildtools/linux64/gn gen //out/Release --check > -> returned 1 > ERROR at //build/split_static_library.gni:12:5: Dependency not allowed. > static_library(target_name) { > ^---------------------------- > The item //content/renderer:renderer > can not depend on //third_party/webrtc/media:rtc_internal_video_codecs > because it is not in //third_party/webrtc/media:rtc_internal_video_codecs's visibility list: [ > //third_party/webrtc/* > //third_party/webrtc_overrides/* > ] > > https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.webrtc.fyi%2FLinux_Builder%2F23560%2F%2B%2Frecipes%2Fsteps%2Fgenerate_build_files%2F0%2Fstdout > > Original change's description: > > GN rtc_* templates: Set default visibility to webrtc_root + "/*" > > > > This means that by default, targets are visible to everything under > > the WebRTC root, but not visible to anything else. > > > > API targets are manually tagged with visibility "*", so that targets > > outside the WebRTC tree can see them. > > > > BUG=webrtc:8254 > > > > Change-Id: Icdbee6e0d22d93240ff2fb530c8f9dc48e351509 > > Reviewed-on: https://webrtc-review.googlesource.com/24140 > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> > > Commit-Queue: Karl Wiberg <kwiberg@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#21548} > > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org > > Change-Id: I06620ce3d6f67482935c22efa231dd6cab91625a > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:8254 > Reviewed-on: https://webrtc-review.googlesource.com/38760 > Reviewed-by: Per Kjellander <perkj@webrtc.org> > Commit-Queue: Per Kjellander <perkj@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#21555} TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,perkj@webrtc.org Change-Id: I6f720078ce21bd172e0a6471bae8c4c011e4a657 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:8254 Reviewed-on: https://webrtc-review.googlesource.com/38860 Reviewed-by: Per Kjellander <perkj@webrtc.org> Commit-Queue: Per Kjellander <perkj@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21558}
2018-01-10 15:54:53 +00:00
visibility = [ "*" ]
testonly = true
sources = [
"test/audio_buffer_tools.cc",
"test/audio_buffer_tools.h",
"test/bitexactness_tools.cc",
"test/bitexactness_tools.h",
"test/performance_timer.cc",
"test/performance_timer.h",
"test/simulator_buffers.cc",
"test/simulator_buffers.h",
"test/test_utils.cc",
"test/test_utils.h",
]
deps = [
":audio_processing",
"../../api:array_view",
"../../api/audio:audio_frame_api",
"../../common_audio",
"../../rtc_base:checks",
"../../rtc_base:rtc_base_approved",
"../../rtc_base/system:arch",
"../../system_wrappers",
"../../test:fileutils",
"../../test:test_support",
"../audio_coding:neteq_input_audio_tools",
"//testing/gtest",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_executable("transient_suppression_test") {
testonly = true
sources = [
"transient/file_utils.cc",
"transient/file_utils.h",
"transient/transient_suppression_test.cc",
]
deps = [
":audio_processing",
"../..:webrtc_common",
"../../common_audio:common_audio",
"../../rtc_base:rtc_base_approved",
"../../rtc_base/system:file_wrapper",
"../../system_wrappers",
"../../system_wrappers:metrics_default",
"../../test:fileutils",
"../../test:test_support",
"agc:level_estimation",
"//testing/gtest",
]
}
rtc_executable("click_annotate") {
testonly = true
sources = [
"transient/click_annotate.cc",
"transient/file_utils.cc",
"transient/file_utils.h",
]
deps = [
":audio_processing",
"../..:webrtc_common",
"../../rtc_base/system:file_wrapper",
"../../system_wrappers",
"../../system_wrappers:metrics_default",
]
}
if (rtc_enable_protobuf) {
proto_library("audioproc_unittest_proto") {
sources = [
"test/unittest.proto",
]
proto_out_dir = "modules/audio_processing/test"
}
rtc_static_library("audioproc_protobuf_utils") {
sources = [
"test/protobuf_utils.cc",
"test/protobuf_utils.h",
]
deps = [
":audioproc_debug_proto",
"../..:webrtc_common",
"../../rtc_base:protobuf_utils",
"../../rtc_base:rtc_base_approved",
"../../rtc_base/system:arch",
]
}
}
}