tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

BUILD.gn (19294B)


      1 # Copyright (c) 2014 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 import("../../webrtc.gni")
     10 if (rtc_enable_protobuf) {
     11   import("//third_party/protobuf/proto_library.gni")
     12 }
     13 
     14 config("apm_debug_dump") {
     15   if (apm_debug_dump) {
     16     defines = [ "WEBRTC_APM_DEBUG_DUMP=1" ]
     17   } else {
     18     defines = [ "WEBRTC_APM_DEBUG_DUMP=0" ]
     19   }
     20 }
     21 
     22 rtc_library("api") {
     23   visibility = [ "*" ]
     24   sources = [ "include/audio_processing.h" ]
     25   deps = [ "../../api/audio:audio_processing" ]
     26 }
     27 
     28 rtc_library("audio_frame_proxies") {
     29   visibility = [ "*" ]
     30   sources = [
     31     "include/audio_frame_proxies.cc",
     32     "include/audio_frame_proxies.h",
     33   ]
     34   deps = [
     35     ":audio_frame_view",
     36     "../../api/audio:audio_frame_api",
     37     "../../api/audio:audio_processing",
     38     "../../api/audio:audio_processing_statistics",
     39     "../../rtc_base:checks",
     40   ]
     41 }
     42 
     43 rtc_library("audio_buffer") {
     44   visibility = [ "*" ]
     45 
     46   configs += [ ":apm_debug_dump" ]
     47 
     48   sources = [
     49     "audio_buffer.cc",
     50     "audio_buffer.h",
     51     "splitting_filter.cc",
     52     "splitting_filter.h",
     53     "three_band_filter_bank.cc",
     54     "three_band_filter_bank.h",
     55   ]
     56 
     57   defines = []
     58 
     59   deps = [
     60     "../../api:array_view",
     61     "../../api/audio:audio_frame_api",
     62     "../../api/audio:audio_processing",
     63     "../../common_audio",
     64     "../../common_audio:common_audio_c",
     65     "../../rtc_base:checks",
     66     "../../rtc_base:gtest_prod",
     67   ]
     68 }
     69 
     70 rtc_library("high_pass_filter") {
     71   visibility = [ "*" ]
     72 
     73   sources = [
     74     "high_pass_filter.cc",
     75     "high_pass_filter.h",
     76   ]
     77 
     78   defines = []
     79 
     80   deps = [
     81     ":audio_buffer",
     82     "../../api:array_view",
     83     "../../rtc_base:checks",
     84     "utility:cascaded_biquad_filter",
     85   ]
     86 }
     87 
     88 rtc_library("post_filter") {
     89   visibility = [ "*" ]
     90 
     91   sources = [
     92     "post_filter.cc",
     93     "post_filter.h",
     94   ]
     95 
     96   defines = []
     97 
     98   deps = [
     99     ":audio_buffer",
    100     "../../api:array_view",
    101     "../../rtc_base:checks",
    102     "utility:cascaded_biquad_filter",
    103   ]
    104 }
    105 
    106 rtc_library("aec_dump_interface") {
    107   visibility = [ "*" ]
    108   sources = [
    109     "include/aec_dump.cc",
    110     "include/aec_dump.h",
    111   ]
    112 
    113   deps = [
    114     ":audio_frame_view",
    115     "../../api/audio:audio_frame_api",
    116     "../../api/audio:audio_processing",
    117     "//third_party/abseil-cpp/absl/base:core_headers",
    118   ]
    119 }
    120 
    121 rtc_library("gain_controller2") {
    122   configs += [ ":apm_debug_dump" ]
    123   sources = [
    124     "gain_controller2.cc",
    125     "gain_controller2.h",
    126   ]
    127   defines = []
    128   deps = [
    129     ":aec_dump_interface",
    130     ":apm_logging",
    131     ":audio_buffer",
    132     ":audio_frame_view",
    133     "../../api:field_trials_view",
    134     "../../api/audio:audio_frame_api",
    135     "../../api/audio:audio_processing",
    136     "../../api/environment",
    137     "../../common_audio",
    138     "../../rtc_base:checks",
    139     "../../rtc_base:logging",
    140     "../../rtc_base:stringutils",
    141     "agc2:adaptive_digital_gain_controller",
    142     "agc2:common",
    143     "agc2:cpu_features",
    144     "agc2:fixed_digital",
    145     "agc2:gain_applier",
    146     "agc2:input_volume_controller",
    147     "agc2:noise_level_estimator",
    148     "agc2:saturation_protector",
    149     "agc2:speech_level_estimator",
    150     "agc2:vad_wrapper",
    151   ]
    152 }
    153 
    154 rtc_library("audio_processing") {
    155   visibility = [ "*" ]
    156   configs += [ ":apm_debug_dump" ]
    157   sources = [
    158     "audio_processing_impl.cc",
    159     "audio_processing_impl.h",
    160     "echo_control_mobile_impl.cc",
    161     "echo_control_mobile_impl.h",
    162     "gain_control_impl.cc",
    163     "gain_control_impl.h",
    164     "render_queue_item_verifier.h",
    165   ]
    166 
    167   defines = []
    168   deps = [
    169     ":aec_dump_interface",
    170     ":apm_logging",
    171     ":audio_buffer",
    172     ":audio_frame_proxies",
    173     ":audio_frame_view",
    174     ":gain_controller2",
    175     ":high_pass_filter",
    176     ":post_filter",
    177     ":rms_level",
    178     "../../api:array_view",
    179     "../../api:field_trials_view",
    180     "../../api:function_view",
    181     "../../api:make_ref_counted",
    182     "../../api:scoped_refptr",
    183     "../../api/audio:aec3_config",
    184     "../../api/audio:audio_frame_api",
    185     "../../api/audio:audio_processing",
    186     "../../api/audio:audio_processing_statistics",
    187     "../../api/audio:echo_control",
    188     "../../api/audio:neural_residual_echo_estimator_api",
    189     "../../api/environment",
    190     "../../api/task_queue",
    191     "../../audio/utility:audio_frame_operations",
    192     "../../common_audio",
    193     "../../common_audio:common_audio_c",
    194     "../../common_audio:fir_filter",
    195     "../../common_audio:fir_filter_factory",
    196     "../../common_audio/third_party/ooura:fft_size_256",
    197     "../../rtc_base:checks",
    198     "../../rtc_base:denormal_disabler",
    199     "../../rtc_base:event_tracer",
    200     "../../rtc_base:gtest_prod",
    201     "../../rtc_base:logging",
    202     "../../rtc_base:macromagic",
    203     "../../rtc_base:safe_minmax",
    204     "../../rtc_base:sanitizer",
    205     "../../rtc_base:swap_queue",
    206     "../../rtc_base:timeutils",
    207     "../../rtc_base/synchronization:mutex",
    208     "../../rtc_base/system:rtc_export",
    209     "../../system_wrappers",
    210     "../../system_wrappers:metrics",
    211     "aec3",
    212     "aec_dump",
    213     "aecm:aecm_core",
    214     "agc",
    215     "agc:gain_control_interface",
    216     "agc:legacy_agc",
    217     "agc2:input_volume_controller",
    218     "agc2:input_volume_stats_reporter",
    219     "capture_levels_adjuster",
    220     "ns",
    221     "vad",
    222     "//third_party/abseil-cpp/absl/base:nullability",
    223     "//third_party/abseil-cpp/absl/strings:string_view",
    224   ]
    225 
    226   if (rtc_enable_protobuf) {
    227     deps += [ "aec_dump:aec_dump_impl" ]
    228   } else {
    229     deps += [ "aec_dump:null_aec_dump_factory" ]
    230   }
    231 }
    232 
    233 rtc_library("residual_echo_detector") {
    234   poisonous = [ "default_echo_detector" ]
    235   configs += [ ":apm_debug_dump" ]
    236   sources = [
    237     "echo_detector/circular_buffer.cc",
    238     "echo_detector/circular_buffer.h",
    239     "echo_detector/mean_variance_estimator.cc",
    240     "echo_detector/mean_variance_estimator.h",
    241     "echo_detector/moving_max.cc",
    242     "echo_detector/moving_max.h",
    243     "echo_detector/normalized_covariance_estimator.cc",
    244     "echo_detector/normalized_covariance_estimator.h",
    245     "residual_echo_detector.cc",
    246     "residual_echo_detector.h",
    247   ]
    248   deps = [
    249     ":apm_logging",
    250     "../../api:array_view",
    251     "../../api/audio:audio_processing",
    252     "../../rtc_base:checks",
    253     "../../rtc_base:logging",
    254     "../../system_wrappers:metrics",
    255   ]
    256 }
    257 
    258 rtc_library("rms_level") {
    259   visibility = [ "*" ]
    260   sources = [
    261     "rms_level.cc",
    262     "rms_level.h",
    263   ]
    264   deps = [
    265     "../../api:array_view",
    266     "../../rtc_base:checks",
    267   ]
    268 }
    269 
    270 rtc_library("audio_processing_statistics") {
    271   visibility = [ "*" ]
    272   sources = [ "include/audio_processing_statistics.h" ]
    273   deps = [ "../../api/audio:audio_processing_statistics" ]
    274 }
    275 
    276 rtc_source_set("audio_frame_view") {
    277   sources = [ "include/audio_frame_view.h" ]
    278   deps = [
    279     "../../api/audio:audio_frame_api",
    280     "../../rtc_base:checks",
    281   ]
    282 }
    283 
    284 if (rtc_enable_protobuf) {
    285   proto_library("audioproc_debug_proto") {
    286     sources = [ "debug.proto" ]
    287 
    288     proto_out_dir = "modules/audio_processing"
    289   }
    290 }
    291 
    292 rtc_library("apm_logging") {
    293   configs += [ ":apm_debug_dump" ]
    294   sources = [
    295     "logging/apm_data_dumper.cc",
    296     "logging/apm_data_dumper.h",
    297   ]
    298   deps = [
    299     "../../api:array_view",
    300     "../../common_audio",
    301     "../../rtc_base:checks",
    302     "../../rtc_base:stringutils",
    303     "//third_party/abseil-cpp/absl/strings:string_view",
    304   ]
    305   defines = []
    306 }
    307 
    308 if (rtc_include_tests) {
    309   rtc_source_set("mocks") {
    310     testonly = true
    311     sources = [ "include/mock_audio_processing.h" ]
    312     deps = [
    313       ":aec_dump_interface",
    314       ":audio_buffer",
    315       ":audio_processing",
    316       "../../api:array_view",
    317       "../../api:scoped_refptr",
    318       "../../api/audio:audio_processing",
    319       "../../api/audio:audio_processing_statistics",
    320       "../../api/audio:echo_control",
    321       "../../api/environment",
    322       "../../api/task_queue",
    323       "../../test:test_support",
    324       "//third_party/abseil-cpp/absl/base:nullability",
    325       "//third_party/abseil-cpp/absl/strings:string_view",
    326     ]
    327   }
    328 
    329   if (!build_with_chromium) {
    330     group("audio_processing_tests") {
    331       testonly = true
    332       deps = [ ":audioproc_test_utils" ]
    333 
    334       if (rtc_enable_protobuf) {
    335         deps += [
    336           ":audioproc_unittest_proto",
    337           "aec_dump:aec_dump_unittests",
    338           "test/conversational_speech",
    339         ]
    340       }
    341     }
    342 
    343     rtc_library("audio_processing_unittests") {
    344       testonly = true
    345 
    346       configs += [ ":apm_debug_dump" ]
    347       sources = [
    348         "audio_buffer_unittest.cc",
    349         "audio_frame_view_unittest.cc",
    350         "echo_control_mobile_unittest.cc",
    351         "gain_controller2_unittest.cc",
    352         "splitting_filter_unittest.cc",
    353         "test/echo_canceller3_config_json_unittest.cc",
    354         "test/fake_recording_device_unittest.cc",
    355       ]
    356 
    357       deps = [
    358         ":aec3_config_json",
    359         ":analog_mic_simulation",
    360         ":apm_logging",
    361         ":audio_buffer",
    362         ":audio_frame_view",
    363         ":audio_processing",
    364         ":audioproc_test_utils",
    365         ":gain_controller2",
    366         ":high_pass_filter",
    367         ":mocks",
    368         ":post_filter",
    369         "../../api:array_view",
    370         "../../api:make_ref_counted",
    371         "../../api:ref_count",
    372         "../../api:scoped_refptr",
    373         "../../api/audio:aec3_config",
    374         "../../api/audio:aec3_factory",
    375         "../../api/audio:audio_frame_api",
    376         "../../api/audio:audio_processing",
    377         "../../api/audio:audio_processing_statistics",
    378         "../../api/audio:builtin_audio_processing_builder",
    379         "../../api/audio:echo_detector_creator",
    380         "../../api/environment",
    381         "../../api/environment:environment_factory",
    382         "../../api/units:time_delta",
    383         "../../common_audio",
    384         "../../common_audio:common_audio_c",
    385         "../../rtc_base:checks",
    386         "../../rtc_base:cpu_info",
    387         "../../rtc_base:denormal_disabler",
    388         "../../rtc_base:gtest_prod",
    389         "../../rtc_base:macromagic",
    390         "../../rtc_base:platform_thread",
    391         "../../rtc_base:protobuf_utils",
    392         "../../rtc_base:random",
    393         "../../rtc_base:rtc_base_tests_utils",
    394         "../../rtc_base:rtc_event",
    395         "../../rtc_base:safe_conversions",
    396         "../../rtc_base:safe_minmax",
    397         "../../rtc_base:stringutils",
    398         "../../rtc_base:swap_queue",
    399         "../../rtc_base:task_queue_for_test",
    400         "../../rtc_base:threading",
    401         "../../rtc_base/synchronization:mutex",
    402         "../../rtc_base/system:arch",
    403         "../../rtc_base/system:file_wrapper",
    404         "../../test:fileutils",
    405         "../../test:rtc_expect_death",
    406         "../../test:test_support",
    407         "../audio_coding:neteq_input_audio_tools",
    408         "aec_dump:mock_aec_dump_unittests",
    409         "agc:agc_unittests",
    410         "agc:gain_control_interface",
    411         "agc2:adaptive_digital_gain_controller_unittest",
    412         "agc2:biquad_filter_unittests",
    413         "agc2:cpu_features",
    414         "agc2:fixed_digital_unittests",
    415         "agc2:gain_applier_unittest",
    416         "agc2:input_volume_controller",
    417         "agc2:input_volume_controller_unittests",
    418         "agc2:input_volume_stats_reporter_unittests",
    419         "agc2:noise_estimator_unittests",
    420         "agc2:saturation_protector_unittest",
    421         "agc2:speech_level_estimator_unittest",
    422         "agc2:test_utils",
    423         "agc2:vad_wrapper",
    424         "agc2:vad_wrapper_unittests",
    425         "agc2/rnn_vad:unittests",
    426         "capture_levels_adjuster",
    427         "capture_levels_adjuster:capture_levels_adjuster_unittests",
    428         "test/conversational_speech:unittest",
    429         "utility:cascaded_biquad_filter_unittest",
    430         "utility:legacy_delay_estimator_unittest",
    431         "utility:pffft_wrapper_unittest",
    432         "vad:vad_unittests",
    433         "//testing/gtest",
    434         "//third_party/abseil-cpp/absl/strings:string_view",
    435       ]
    436 
    437       defines = []
    438 
    439       if (rtc_prefer_fixed_point) {
    440         defines += [ "WEBRTC_AUDIOPROC_FIXED_PROFILE" ]
    441       } else {
    442         defines += [ "WEBRTC_AUDIOPROC_FLOAT_PROFILE" ]
    443       }
    444 
    445       if (rtc_enable_protobuf) {
    446         defines += [ "WEBRTC_AUDIOPROC_DEBUG_DUMP" ]
    447         deps += [
    448           ":audioproc_debug_proto",
    449           ":audioproc_protobuf_utils",
    450           ":audioproc_test_utils",
    451           ":audioproc_unittest_proto",
    452           ":residual_echo_detector",
    453           ":rms_level",
    454           ":runtime_settings_protobuf_utils",
    455           "../../api/audio:audio_frame_api",
    456           "../../api/audio:echo_control",
    457           "../../api/audio:neural_residual_echo_estimator_api",
    458           "../../rtc_base:rtc_base_tests_utils",
    459           "aec_dump",
    460           "aec_dump:aec_dump_unittests",
    461           "//third_party/abseil-cpp/absl/flags:flag",
    462         ]
    463         sources += [
    464           "audio_processing_impl_locking_unittest.cc",
    465           "audio_processing_impl_unittest.cc",
    466           "audio_processing_unittest.cc",
    467           "echo_control_mobile_bit_exact_unittest.cc",
    468           "echo_detector/circular_buffer_unittest.cc",
    469           "echo_detector/mean_variance_estimator_unittest.cc",
    470           "echo_detector/moving_max_unittest.cc",
    471           "echo_detector/normalized_covariance_estimator_unittest.cc",
    472           "gain_control_unittest.cc",
    473           "high_pass_filter_unittest.cc",
    474           "post_filter_unittest.cc",
    475           "residual_echo_detector_unittest.cc",
    476           "rms_level_unittest.cc",
    477           "test/debug_dump_replayer.cc",
    478           "test/debug_dump_replayer.h",
    479           "test/debug_dump_test.cc",
    480           "test/echo_canceller_test_tools.cc",
    481           "test/echo_canceller_test_tools.h",
    482           "test/echo_canceller_test_tools_unittest.cc",
    483           "test/echo_control_mock.h",
    484         ]
    485       }
    486     }
    487   }
    488 
    489   rtc_library("audio_processing_perf_tests") {
    490     testonly = true
    491     configs += [ ":apm_debug_dump" ]
    492 
    493     sources = [ "audio_processing_performance_unittest.cc" ]
    494     deps = [
    495       ":audio_processing",
    496       ":audioproc_test_utils",
    497       "../../api:array_view",
    498       "../../api:scoped_refptr",
    499       "../../api/audio:audio_processing",
    500       "../../api/audio:builtin_audio_processing_builder",
    501       "../../api/environment:environment_factory",
    502       "../../api/numerics",
    503       "../../api/test/metrics:global_metrics_logger_and_exporter",
    504       "../../api/test/metrics:metric",
    505       "../../api/units:time_delta",
    506       "../../rtc_base:checks",
    507       "../../rtc_base:platform_thread",
    508       "../../rtc_base:protobuf_utils",
    509       "../../rtc_base:random",
    510       "../../rtc_base:rtc_event",
    511       "../../rtc_base:safe_conversions",
    512       "../../system_wrappers",
    513       "../../test:test_support",
    514       "//third_party/abseil-cpp/absl/strings:string_view",
    515     ]
    516   }
    517 
    518   rtc_library("analog_mic_simulation") {
    519     sources = [
    520       "test/fake_recording_device.cc",
    521       "test/fake_recording_device.h",
    522     ]
    523     deps = [
    524       "../../api:array_view",
    525       "../../api/audio:audio_frame_api",
    526       "../../common_audio",
    527       "../../rtc_base:checks",
    528       "../../rtc_base:logging",
    529       "../../rtc_base:safe_conversions",
    530       "../../rtc_base:safe_minmax",
    531       "agc2:gain_map",
    532     ]
    533   }
    534 
    535   if (rtc_enable_protobuf && !build_with_chromium) {
    536     rtc_library("audioproc_f_impl") {
    537       testonly = true
    538       configs += [ ":apm_debug_dump" ]
    539       sources = [
    540         "test/aec_dump_based_simulator.cc",
    541         "test/aec_dump_based_simulator.h",
    542         "test/api_call_statistics.cc",
    543         "test/api_call_statistics.h",
    544         "test/audio_processing_simulator.cc",
    545         "test/audio_processing_simulator.h",
    546         "test/audioproc_float_impl.cc",
    547         "test/audioproc_float_impl.h",
    548         "test/wav_based_simulator.cc",
    549         "test/wav_based_simulator.h",
    550       ]
    551 
    552       deps = [
    553         ":aec3_config_json",
    554         ":analog_mic_simulation",
    555         ":apm_logging",
    556         ":audio_processing",
    557         ":audioproc_debug_proto",
    558         ":audioproc_protobuf_utils",
    559         ":audioproc_test_utils",
    560         "../../api:field_trials",
    561         "../../api:scoped_refptr",
    562         "../../api/audio:aec3_config",
    563         "../../api/audio:aec3_factory",
    564         "../../api/audio:audio_processing",
    565         "../../api/audio:builtin_audio_processing_builder",
    566         "../../api/audio:echo_detector_creator",
    567         "../../api/environment",
    568         "../../api/environment:environment_factory",
    569         "../../common_audio",
    570         "../../rtc_base:checks",
    571         "../../rtc_base:logging",
    572         "../../rtc_base:safe_conversions",
    573         "../../rtc_base:stringutils",
    574         "../../rtc_base:task_queue_for_test",
    575         "../../rtc_base:timeutils",
    576         "../../rtc_base/system:file_wrapper",
    577         "aec3:neural_residual_echo_estimator_impl",
    578         "aec_dump",
    579         "//third_party/abseil-cpp/absl/base:nullability",
    580         "//third_party/abseil-cpp/absl/flags:flag",
    581         "//third_party/abseil-cpp/absl/flags:parse",
    582         "//third_party/abseil-cpp/absl/strings:string_view",
    583       ]
    584     }  # audioproc_f_impl
    585   }
    586 
    587   if (rtc_enable_protobuf) {
    588     proto_library("audioproc_unittest_proto") {
    589       sources = [ "test/unittest.proto" ]
    590       proto_out_dir = "modules/audio_processing/test"
    591     }
    592 
    593     rtc_library("audioproc_protobuf_utils") {
    594       sources = [
    595         "test/protobuf_utils.cc",
    596         "test/protobuf_utils.h",
    597       ]
    598 
    599       deps = [
    600         ":audioproc_debug_proto",
    601         "../../rtc_base:checks",
    602         "../../rtc_base:protobuf_utils",
    603         "../../rtc_base/system:arch",
    604       ]
    605     }
    606 
    607     rtc_library("runtime_settings_protobuf_utils") {
    608       testonly = true
    609       sources = [
    610         "test/runtime_setting_util.cc",
    611         "test/runtime_setting_util.h",
    612       ]
    613 
    614       deps = [
    615         ":audioproc_debug_proto",
    616         ":audioproc_protobuf_utils",
    617         "../../api/audio:audio_processing",
    618         "../../rtc_base:checks",
    619       ]
    620     }
    621   }
    622 }
    623 
    624 rtc_library("audioproc_test_utils") {
    625   visibility = [ "*" ]
    626   testonly = true
    627   sources = [
    628     "test/audio_buffer_tools.cc",
    629     "test/audio_buffer_tools.h",
    630     "test/bitexactness_tools.cc",
    631     "test/bitexactness_tools.h",
    632     "test/performance_timer.cc",
    633     "test/performance_timer.h",
    634     "test/simulator_buffers.cc",
    635     "test/simulator_buffers.h",
    636     "test/test_utils.cc",
    637     "test/test_utils.h",
    638   ]
    639 
    640   configs += [ ":apm_debug_dump" ]
    641 
    642   deps = [
    643     ":audio_buffer",
    644     ":audio_processing",
    645     "../../api:array_view",
    646     "../../api/audio:audio_frame_api",
    647     "../../api/audio:audio_processing",
    648     "../../common_audio",
    649     "../../rtc_base:checks",
    650     "../../rtc_base:random",
    651     "../../rtc_base/system:arch",
    652     "../../system_wrappers",
    653     "../../test:fileutils",
    654     "../../test:test_support",
    655     "../audio_coding:neteq_input_audio_tools",
    656     "//testing/gtest",
    657     "//third_party/abseil-cpp/absl/strings:string_view",
    658   ]
    659 }
    660 
    661 rtc_library("aec3_config_json") {
    662   visibility = [ "*" ]
    663   testonly = true
    664   sources = [
    665     "test/echo_canceller3_config_json.cc",
    666     "test/echo_canceller3_config_json.h",
    667   ]
    668   deps = [
    669     "../../api/audio:aec3_config",
    670     "../../rtc_base:checks",
    671     "../../rtc_base:logging",
    672     "../../rtc_base:rtc_json",
    673     "../../rtc_base:stringutils",
    674     "../../rtc_base/system:rtc_export",
    675     "//third_party/abseil-cpp/absl/strings:string_view",
    676   ]
    677 }