Consolidate audio_processing targets to improve gyp time.

Saves about 5% on a standalone Mac-XCode gyp run.

BUG=issue34

Review URL: https://webrtc-codereview.appspot.com/781004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2723 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
andrew@webrtc.org 2012-09-08 19:27:24 +00:00
parent 7a50fa428c
commit 8c4696cd76
8 changed files with 112 additions and 318 deletions

View File

@ -1,75 +0,0 @@
# Copyright (c) 2012 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.
{
'targets': [
{
'target_name': 'aec',
'type': '<(library)',
'variables': {
# Outputs some low-level debug files.
'aec_debug_dump%': 0,
},
'dependencies': [
'apm_util',
'<(webrtc_root)/common_audio/common_audio.gyp:signal_processing',
],
'include_dirs': [
'include',
],
'direct_dependent_settings': {
'include_dirs': [
'include',
],
},
'sources': [
'include/echo_cancellation.h',
'echo_cancellation.c',
'echo_cancellation_internal.h',
'aec_core.h',
'aec_core.c',
'aec_rdft.h',
'aec_rdft.c',
'aec_resampler.h',
'aec_resampler.c',
],
'conditions': [
['target_arch=="ia32" or target_arch=="x64"', {
'dependencies': [ 'aec_sse2', ],
}],
['aec_debug_dump==1', {
'defines': [ 'WEBRTC_AEC_DEBUG_DUMP', ],
}],
],
},
],
'conditions': [
['target_arch=="ia32" or target_arch=="x64"', {
'targets': [
{
'target_name': 'aec_sse2',
'type': '<(library)',
'sources': [
'aec_core_sse2.c',
'aec_rdft_sse2.c',
],
'conditions': [
['os_posix==1 and OS!="mac"', {
'cflags': [ '-msse2', ],
}],
['OS=="mac"', {
'xcode_settings': {
'OTHER_CFLAGS': [ '-msse2', ],
},
}],
],
},
],
}],
],
}

View File

@ -1,57 +0,0 @@
# Copyright (c) 2012 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.
{
'targets': [
{
'target_name': 'aecm',
'type': '<(library)',
'dependencies': [
'<(webrtc_root)/common_audio/common_audio.gyp:signal_processing',
'<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
'apm_util'
],
'include_dirs': [
'include',
],
'direct_dependent_settings': {
'include_dirs': [
'include',
],
},
'sources': [
'include/echo_control_mobile.h',
'echo_control_mobile.c',
'aecm_core.c',
'aecm_core.h',
],
'conditions': [
['target_arch=="arm" and armv7==1', {
'dependencies': [ 'aecm_neon', ],
}],
],
},
],
'conditions': [
['target_arch=="arm" and armv7==1', {
'targets': [
{
'target_name': 'aecm_neon',
'type': '<(library)',
'includes': [ '../../../build/arm_neon.gypi', ],
'dependencies': [
'<(webrtc_root)/common_audio/common_audio.gyp:signal_processing',
],
'sources': [
'aecm_core_neon.c',
],
},
],
}],
],
}

View File

@ -1,34 +0,0 @@
# Copyright (c) 2012 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.
{
'targets': [
{
'target_name': 'agc',
'type': '<(library)',
'dependencies': [
'<(webrtc_root)/common_audio/common_audio.gyp:signal_processing',
],
'include_dirs': [
'include',
],
'direct_dependent_settings': {
'include_dirs': [
'include',
],
},
'sources': [
'include/gain_control.h',
'analog_agc.c',
'analog_agc.h',
'digital_agc.c',
'digital_agc.h',
],
},
],
}

View File

@ -10,40 +10,50 @@
'targets': [
{
'target_name': 'audio_processing',
'type': '<(library)',
'conditions': [
['prefer_fixed_point==1', {
'dependencies': [ 'ns_fix' ],
'defines': [ 'WEBRTC_NS_FIXED' ],
}, {
'dependencies': [ 'ns' ],
'defines': [ 'WEBRTC_NS_FLOAT' ],
}],
['enable_protobuf==1', {
'dependencies': [ 'audioproc_debug_proto' ],
'defines': [ 'WEBRTC_AUDIOPROC_DEBUG_DUMP' ],
}],
],
'type': 'static_library',
'variables': {
# Outputs some low-level debug files.
'aec_debug_dump%': 0,
},
'dependencies': [
'aec',
'aecm',
'agc',
'<(webrtc_root)/common_audio/common_audio.gyp:signal_processing',
'<(webrtc_root)/common_audio/common_audio.gyp:vad',
'<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
],
'include_dirs': [
'include',
'../interface',
'aec/include',
'aecm/include',
'agc/include',
'include',
'ns/include',
'utility',
],
'direct_dependent_settings': {
'include_dirs': [
'include',
'../interface',
'include',
],
},
'sources': [
'include/audio_processing.h',
'aec/include/echo_cancellation.h',
'aec/echo_cancellation.c',
'aec/echo_cancellation_internal.h',
'aec/aec_core.h',
'aec/aec_core.c',
'aec/aec_rdft.h',
'aec/aec_rdft.c',
'aec/aec_resampler.h',
'aec/aec_resampler.c',
'aecm/include/echo_control_mobile.h',
'aecm/echo_control_mobile.c',
'aecm/aecm_core.c',
'aecm/aecm_core.h',
'agc/include/gain_control.h',
'agc/analog_agc.c',
'agc/analog_agc.h',
'agc/digital_agc.c',
'agc/digital_agc.h',
'audio_buffer.cc',
'audio_buffer.h',
'audio_processing_impl.cc',
@ -56,6 +66,7 @@
'gain_control_impl.h',
'high_pass_filter_impl.cc',
'high_pass_filter_impl.h',
'include/audio_processing.h',
'level_estimator_impl.cc',
'level_estimator_impl.h',
'noise_suppression_impl.cc',
@ -64,18 +75,65 @@
'splitting_filter.h',
'processing_component.cc',
'processing_component.h',
'utility/delay_estimator.c',
'utility/delay_estimator.h',
'utility/delay_estimator_internal.h',
'utility/delay_estimator_wrapper.c',
'utility/delay_estimator_wrapper.h',
'utility/fft4g.c',
'utility/fft4g.h',
'utility/ring_buffer.c',
'utility/ring_buffer.h',
'voice_detection_impl.cc',
'voice_detection_impl.h',
],
'conditions': [
['aec_debug_dump==1', {
'defines': ['WEBRTC_AEC_DEBUG_DUMP',],
}],
['enable_protobuf==1', {
'dependencies': ['audioproc_debug_proto'],
'defines': ['WEBRTC_AUDIOPROC_DEBUG_DUMP'],
}],
['prefer_fixed_point==1', {
'defines': ['WEBRTC_NS_FIXED'],
'sources': [
'ns/include/noise_suppression_x.h',
'ns/noise_suppression_x.c',
'ns/nsx_core.c',
'ns/nsx_core.h',
'ns/nsx_defines.h',
],
}, {
'defines': ['WEBRTC_NS_FLOAT'],
'sources': [
'ns/defines.h',
'ns/include/noise_suppression.h',
'ns/noise_suppression.c',
'ns/ns_core.c',
'ns/ns_core.h',
'ns/windows_private.h',
],
}],
['target_arch=="ia32" or target_arch=="x64"', {
'dependencies': ['audio_processing_sse2',],
}],
['target_arch=="arm" and armv7==1', {
'dependencies': ['audio_processing_neon',],
}],
],
},
],
'conditions': [
['include_tests==1', {
'includes': ['audio_processing_tests.gypi'],
}],
['enable_protobuf==1', {
'targets': [
{
'target_name': 'audioproc_debug_proto',
'type': 'static_library',
'sources': [ 'debug.proto', ],
'sources': ['debug.proto',],
'variables': {
'proto_in_dir': '.',
# Workaround to protect against gyp's pathname relativization when
@ -83,7 +141,39 @@
'proto_out_protected': 'webrtc/audio_processing',
'proto_out_dir': '<(proto_out_protected)',
},
'includes': [ '../../build/protoc.gypi', ],
'includes': ['../../build/protoc.gypi',],
},
],
}],
['target_arch=="ia32" or target_arch=="x64"', {
'targets': [
{
'target_name': 'audio_processing_sse2',
'type': 'static_library',
'sources': [
'aec/aec_core_sse2.c',
'aec/aec_rdft_sse2.c',
],
'cflags': ['-msse2',],
'xcode_settings': {
'OTHER_CFLAGS': ['-msse2',],
},
},
],
}],
['target_arch=="arm" and armv7==1', {
'targets': [
{
'target_name': 'audio_processing_neon',
'type': 'static_library',
'includes': ['../../build/arm_neon.gypi',],
'dependencies': [
'<(webrtc_root)/common_audio/common_audio.gyp:signal_processing',
],
'sources': [
'aecm/aecm_core_neon.c',
'ns/nsx_core_neon.c',
],
},
],
}],

View File

@ -1,83 +0,0 @@
# Copyright (c) 2012 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.
{
'targets': [
{
'target_name': 'ns',
'type': '<(library)',
'dependencies': [
'<(webrtc_root)/common_audio/common_audio.gyp:signal_processing',
'apm_util'
],
'include_dirs': [
'include',
],
'direct_dependent_settings': {
'include_dirs': [
'include',
],
},
'sources': [
'include/noise_suppression.h',
'noise_suppression.c',
'windows_private.h',
'defines.h',
'ns_core.c',
'ns_core.h',
],
},
{
'target_name': 'ns_fix',
'type': '<(library)',
'dependencies': [
'<(webrtc_root)/common_audio/common_audio.gyp:signal_processing',
'<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
],
'include_dirs': [
'include',
],
'direct_dependent_settings': {
'include_dirs': [
'include',
],
},
'sources': [
'include/noise_suppression_x.h',
'noise_suppression_x.c',
'nsx_defines.h',
'nsx_core.c',
'nsx_core.h',
],
'conditions': [
['target_arch=="arm" and armv7==1', {
'dependencies': [ 'ns_neon', ],
}],
],
},
],
'conditions': [
['target_arch=="arm" and armv7==1', {
'targets': [
{
'target_name': 'ns_neon',
'type': '<(library)',
'includes': [ '../../../build/arm_neon.gypi', ],
'dependencies': [
'<(webrtc_root)/common_audio/common_audio.gyp:signal_processing',
],
'sources': [
'nsx_core_neon.c',
],
},
],
}],
],
}

View File

@ -1,41 +0,0 @@
# Copyright (c) 2011 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.
{
'targets': [
{
'target_name': 'apm_util',
'type': '<(library)',
'dependencies': [
'<(webrtc_root)/common_audio/common_audio.gyp:signal_processing',
],
'direct_dependent_settings': {
'include_dirs': [
'.',
],
},
'sources': [
'delay_estimator.c',
'delay_estimator.h',
'delay_estimator_internal.h',
'delay_estimator_wrapper.c',
'delay_estimator_wrapper.h',
'fft4g.c',
'fft4g.h',
'ring_buffer.c',
'ring_buffer.h',
],
},
],
}
# Local Variables:
# tab-width:2
# indent-tabs-mode:nil
# End:
# vim: set expandtab tabstop=2 shiftwidth=2:

View File

@ -21,11 +21,6 @@
'audio_conference_mixer/source/audio_conference_mixer.gypi',
'audio_device/main/source/audio_device.gypi',
'audio_processing/audio_processing.gypi',
'audio_processing/aec/aec.gypi',
'audio_processing/aecm/aecm.gypi',
'audio_processing/agc/agc.gypi',
'audio_processing/ns/ns.gypi',
'audio_processing/utility/util.gypi',
'bitrate_controller/bitrate_controller.gypi',
'media_file/source/media_file.gypi',
'remote_bitrate_estimator/remote_bitrate_estimator.gypi',
@ -44,7 +39,6 @@
'includes': [
'audio_coding/codecs/isac/isac_test.gypi',
'audio_coding/codecs/isac/isacfix_test.gypi',
'audio_processing/apm_tests.gypi',
'rtp_rtcp/source/rtp_rtcp_tests.gypi',
'rtp_rtcp/test/testFec/test_fec.gypi',
'rtp_rtcp/test/testAPI/test_api.gypi',