1# Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 2# 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 5# tree. An additional intellectual property rights grant can be found 6# in the file PATENTS. All contributing project authors may 7# be found in the AUTHORS file in the root of the source tree. 8 9{ 10 'includes': [ 11 '../build/common.gypi', 12 ], 13 'targets': [ 14 { 15 'target_name': 'common_audio', 16 'type': 'static_library', 17 'dependencies': [ 18 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers', 19 ], 20 'include_dirs': [ 21 'resampler/include', 22 'signal_processing/include', 23 ], 24 'direct_dependent_settings': { 25 'include_dirs': [ 26 'resampler/include', 27 'signal_processing/include', 28 'vad/include', 29 ], 30 }, 31 'sources': [ 32 'audio_util.cc', 33 'fir_filter.cc', 34 'fir_filter.h', 35 'fir_filter_neon.h', 36 'fir_filter_sse.h', 37 'include/audio_util.h', 38 'resampler/include/push_resampler.h', 39 'resampler/include/resampler.h', 40 'resampler/push_resampler.cc', 41 'resampler/push_sinc_resampler.cc', 42 'resampler/push_sinc_resampler.h', 43 'resampler/resampler.cc', 44 'resampler/sinc_resampler.cc', 45 'resampler/sinc_resampler.h', 46 'signal_processing/include/real_fft.h', 47 'signal_processing/include/signal_processing_library.h', 48 'signal_processing/include/spl_inl.h', 49 'signal_processing/auto_corr_to_refl_coef.c', 50 'signal_processing/auto_correlation.c', 51 'signal_processing/complex_fft.c', 52 'signal_processing/complex_fft_tables.h', 53 'signal_processing/complex_bit_reverse.c', 54 'signal_processing/copy_set_operations.c', 55 'signal_processing/cross_correlation.c', 56 'signal_processing/division_operations.c', 57 'signal_processing/dot_product_with_scale.c', 58 'signal_processing/downsample_fast.c', 59 'signal_processing/energy.c', 60 'signal_processing/filter_ar.c', 61 'signal_processing/filter_ar_fast_q12.c', 62 'signal_processing/filter_ma_fast_q12.c', 63 'signal_processing/get_hanning_window.c', 64 'signal_processing/get_scaling_square.c', 65 'signal_processing/ilbc_specific_functions.c', 66 'signal_processing/levinson_durbin.c', 67 'signal_processing/lpc_to_refl_coef.c', 68 'signal_processing/min_max_operations.c', 69 'signal_processing/randomization_functions.c', 70 'signal_processing/refl_coef_to_lpc.c', 71 'signal_processing/real_fft.c', 72 'signal_processing/resample.c', 73 'signal_processing/resample_48khz.c', 74 'signal_processing/resample_by_2.c', 75 'signal_processing/resample_by_2_internal.c', 76 'signal_processing/resample_by_2_internal.h', 77 'signal_processing/resample_fractional.c', 78 'signal_processing/spl_init.c', 79 'signal_processing/spl_sqrt.c', 80 'signal_processing/spl_sqrt_floor.c', 81 'signal_processing/spl_version.c', 82 'signal_processing/splitting_filter.c', 83 'signal_processing/sqrt_of_one_minus_x_squared.c', 84 'signal_processing/vector_scaling_operations.c', 85 'vad/include/webrtc_vad.h', 86 'vad/webrtc_vad.c', 87 'vad/vad_core.c', 88 'vad/vad_core.h', 89 'vad/vad_filterbank.c', 90 'vad/vad_filterbank.h', 91 'vad/vad_gmm.c', 92 'vad/vad_gmm.h', 93 'vad/vad_sp.c', 94 'vad/vad_sp.h', 95 'wav_header.cc', 96 'wav_header.h', 97 'wav_writer.cc', 98 'wav_writer.h', 99 ], 100 'conditions': [ 101 ['target_arch=="ia32" or target_arch=="x64"', { 102 'dependencies': ['common_audio_sse2',], 103 }], 104 ['target_arch=="arm" or target_arch=="armv7"', { 105 'sources': [ 106 'signal_processing/complex_bit_reverse_arm.S', 107 'signal_processing/spl_sqrt_floor_arm.S', 108 ], 109 'sources!': [ 110 'signal_processing/complex_bit_reverse.c', 111 'signal_processing/spl_sqrt_floor.c', 112 ], 113 'conditions': [ 114 ['arm_version==7', { 115 'dependencies': ['common_audio_neon',], 116 'sources': [ 117 'signal_processing/filter_ar_fast_q12_armv7.S', 118 ], 119 'sources!': [ 120 'signal_processing/filter_ar_fast_q12.c', 121 ], 122 }], 123 ], # conditions 124 }], 125 ['target_arch=="mipsel" and mips_arch_variant!="r6" and android_webview_build==0', { 126 'sources': [ 127 'signal_processing/include/spl_inl_mips.h', 128 'signal_processing/complex_bit_reverse_mips.c', 129 'signal_processing/complex_fft_mips.c', 130 'signal_processing/cross_correlation_mips.c', 131 'signal_processing/downsample_fast_mips.c', 132 'signal_processing/filter_ar_fast_q12_mips.c', 133 'signal_processing/min_max_operations_mips.c', 134 'signal_processing/resample_by_2_mips.c', 135 'signal_processing/spl_sqrt_floor_mips.c', 136 ], 137 'sources!': [ 138 'signal_processing/complex_bit_reverse.c', 139 'signal_processing/complex_fft.c', 140 'signal_processing/filter_ar_fast_q12.c', 141 'signal_processing/spl_sqrt_floor.c', 142 ], 143 'conditions': [ 144 ['mips_dsp_rev>0', { 145 'sources': [ 146 'signal_processing/vector_scaling_operations_mips.c', 147 ], 148 }], 149 ], 150 }], 151 ], # conditions 152 # Ignore warning on shift operator promotion. 153 'msvs_disabled_warnings': [ 4334, ], 154 }, 155 ], # targets 156 'conditions': [ 157 ['target_arch=="ia32" or target_arch=="x64"', { 158 'targets': [ 159 { 160 'target_name': 'common_audio_sse2', 161 'type': 'static_library', 162 'sources': [ 163 'fir_filter_sse.cc', 164 'resampler/sinc_resampler_sse.cc', 165 ], 166 'cflags': ['-msse2',], 167 'xcode_settings': { 168 'OTHER_CFLAGS': ['-msse2',], 169 }, 170 }, 171 ], # targets 172 }], 173 ['(target_arch=="arm" and arm_version==7) or target_arch=="armv7"', { 174 'targets': [ 175 { 176 'target_name': 'common_audio_neon', 177 'type': 'static_library', 178 'includes': ['../build/arm_neon.gypi',], 179 'sources': [ 180 'fir_filter_neon.cc', 181 'resampler/sinc_resampler_neon.cc', 182 'signal_processing/cross_correlation_neon.S', 183 'signal_processing/downsample_fast_neon.S', 184 'signal_processing/min_max_operations_neon.S', 185 'signal_processing/vector_scaling_operations_neon.S', 186 ], 187 'conditions': [ 188 # Disable LTO in common_audio_neon target due to compiler bug 189 ['use_lto==1', { 190 'cflags!': [ 191 '-flto', 192 '-ffat-lto-objects', 193 ], 194 }], 195 ], 196 }, 197 ], # targets 198 }], 199 ['include_tests==1', { 200 'targets' : [ 201 { 202 'target_name': 'common_audio_unittests', 203 'type': '<(gtest_target_type)', 204 'dependencies': [ 205 'common_audio', 206 '<(webrtc_root)/test/test.gyp:test_support_main', 207 '<(DEPTH)/testing/gmock.gyp:gmock', 208 '<(DEPTH)/testing/gtest.gyp:gtest', 209 ], 210 'sources': [ 211 'audio_util_unittest.cc', 212 'fir_filter_unittest.cc', 213 'resampler/resampler_unittest.cc', 214 'resampler/push_resampler_unittest.cc', 215 'resampler/push_sinc_resampler_unittest.cc', 216 'resampler/sinc_resampler_unittest.cc', 217 'resampler/sinusoidal_linear_chirp_source.cc', 218 'resampler/sinusoidal_linear_chirp_source.h', 219 'signal_processing/real_fft_unittest.cc', 220 'signal_processing/signal_processing_unittest.cc', 221 'vad/vad_core_unittest.cc', 222 'vad/vad_filterbank_unittest.cc', 223 'vad/vad_gmm_unittest.cc', 224 'vad/vad_sp_unittest.cc', 225 'vad/vad_unittest.cc', 226 'vad/vad_unittest.h', 227 'wav_header_unittest.cc', 228 'wav_writer_unittest.cc', 229 ], 230 'conditions': [ 231 ['OS=="android"', { 232 'dependencies': [ 233 '<(DEPTH)/testing/android/native_test.gyp:native_test_native_code', 234 ], 235 }], 236 ], 237 }, 238 ], # targets 239 'conditions': [ 240 ['OS=="android"', { 241 'targets': [ 242 { 243 'target_name': 'common_audio_unittests_apk_target', 244 'type': 'none', 245 'dependencies': [ 246 '<(apk_tests_path):common_audio_unittests_apk', 247 ], 248 }, 249 ], 250 }], 251 ['test_isolation_mode != "noop"', { 252 'targets': [ 253 { 254 'target_name': 'common_audio_unittests_run', 255 'type': 'none', 256 'dependencies': [ 257 'common_audio_unittests', 258 ], 259 'includes': [ 260 '../build/isolate.gypi', 261 'common_audio_unittests.isolate', 262 ], 263 'sources': [ 264 'common_audio_unittests.isolate', 265 ], 266 }, 267 ], 268 }], 269 ], 270 }], 271 ], # conditions 272} 273