tor-browser

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

BUILD.gn (10769B)


      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 
     11 visibility = [ ":*" ]
     12 
     13 rtc_library("common_audio") {
     14   visibility += [ "*" ]
     15   sources = [
     16     "audio_converter.cc",
     17     "audio_converter.h",
     18     "audio_util.cc",
     19     "channel_buffer.cc",
     20     "channel_buffer.h",
     21     "include/audio_util.h",
     22     "real_fourier.cc",
     23     "real_fourier.h",
     24     "real_fourier_ooura.cc",
     25     "real_fourier_ooura.h",
     26     "resampler/include/push_resampler.h",
     27     "resampler/include/resampler.h",
     28     "resampler/push_resampler.cc",
     29     "resampler/push_sinc_resampler.cc",
     30     "resampler/push_sinc_resampler.h",
     31     "resampler/resampler.cc",
     32     "resampler/sinc_resampler.cc",
     33     "smoothing_filter.cc",
     34     "smoothing_filter.h",
     35     "vad/include/vad.h",
     36     "vad/vad.cc",
     37     "wav_file.cc",
     38     "wav_file.h",
     39     "wav_header.cc",
     40     "wav_header.h",
     41     "window_generator.cc",
     42     "window_generator.h",
     43   ]
     44 
     45   deps = [
     46     ":common_audio_c",
     47     ":sinc_resampler",
     48     "../api:array_view",
     49     "../api/audio:audio_frame_api",
     50     "../api/units:timestamp",
     51     "../rtc_base:checks",
     52     "../rtc_base:cpu_info",
     53     "../rtc_base:gtest_prod",
     54     "../rtc_base:logging",
     55     "../rtc_base:safe_conversions",
     56     "../rtc_base:sanitizer",
     57     "../rtc_base/memory:aligned_malloc",
     58     "../rtc_base/system:arch",
     59     "../rtc_base/system:file_wrapper",
     60     "third_party/ooura:fft_size_256",
     61     "//third_party/abseil-cpp/absl/strings:string_view",
     62   ]
     63 
     64   defines = []
     65 
     66   if (rtc_build_with_neon) {
     67     deps += [ ":common_audio_neon" ]
     68   }
     69 
     70   if (target_cpu == "x86" || target_cpu == "x64") {
     71     deps += [ ":common_audio_sse2" ]
     72     deps += [ ":common_audio_avx2" ]
     73   }
     74 }
     75 
     76 rtc_source_set("mock_common_audio") {
     77   visibility += webrtc_default_visibility
     78   testonly = true
     79   sources = [
     80     "mocks/mock_smoothing_filter.h",
     81     "vad/mock/mock_vad.h",
     82   ]
     83   deps = [
     84     ":common_audio",
     85     "../api/units:timestamp",
     86     "../test:test_support",
     87   ]
     88 }
     89 
     90 rtc_source_set("common_audio_c_arm_asm") {
     91   sources = []
     92   deps = []
     93   if (target_cpu == "arm") {
     94     sources += [ "signal_processing/complex_bit_reverse_arm.S" ]
     95 
     96     if (arm_version >= 7) {
     97       sources += [ "signal_processing/filter_ar_fast_q12_armv7.S" ]
     98     } else {
     99       sources += [ "signal_processing/filter_ar_fast_q12.c" ]
    100     }
    101     deps += [ "../rtc_base/system:asm_defines" ]
    102   }
    103 }
    104 
    105 rtc_library("common_audio_c") {
    106   visibility += webrtc_default_visibility
    107   sources = [
    108     "ring_buffer.c",
    109     "ring_buffer.h",
    110     "signal_processing/auto_corr_to_refl_coef.c",
    111     "signal_processing/auto_correlation.c",
    112     "signal_processing/complex_fft_tables.h",
    113     "signal_processing/copy_set_operations.c",
    114     "signal_processing/cross_correlation.c",
    115     "signal_processing/division_operations.c",
    116     "signal_processing/downsample_fast.c",
    117     "signal_processing/energy.c",
    118     "signal_processing/filter_ar.c",
    119     "signal_processing/filter_ma_fast_q12.c",
    120     "signal_processing/get_hanning_window.c",
    121     "signal_processing/get_scaling_square.c",
    122     "signal_processing/include/real_fft.h",
    123     "signal_processing/include/signal_processing_library.h",
    124     "signal_processing/include/spl_inl.h",
    125     "signal_processing/include/spl_inl_armv7.h",
    126     "signal_processing/levinson_durbin.c",
    127     "signal_processing/lpc_to_refl_coef.c",
    128     "signal_processing/min_max_operations.c",
    129     "signal_processing/randomization_functions.c",
    130     "signal_processing/real_fft.c",
    131     "signal_processing/refl_coef_to_lpc.c",
    132     "signal_processing/resample.c",
    133     "signal_processing/resample_48khz.c",
    134     "signal_processing/resample_by_2.c",
    135     "signal_processing/resample_by_2_internal.c",
    136     "signal_processing/resample_by_2_internal.h",
    137     "signal_processing/resample_fractional.c",
    138     "signal_processing/spl_init.c",
    139     "signal_processing/spl_inl.c",
    140     "signal_processing/spl_sqrt.c",
    141     "signal_processing/splitting_filter.c",
    142     "signal_processing/sqrt_of_one_minus_x_squared.c",
    143     "signal_processing/vector_operations.c",
    144     "signal_processing/vector_scaling_operations.c",
    145     "vad/include/webrtc_vad.h",
    146     "vad/vad_core.c",
    147     "vad/vad_core.h",
    148     "vad/vad_filterbank.c",
    149     "vad/vad_filterbank.h",
    150     "vad/vad_gmm.c",
    151     "vad/vad_gmm.h",
    152     "vad/vad_sp.c",
    153     "vad/vad_sp.h",
    154     "vad/webrtc_vad.c",
    155   ]
    156 
    157   if (target_cpu == "mipsel") {
    158     sources += [
    159       "signal_processing/complex_bit_reverse_mips.c",
    160       "signal_processing/complex_fft_mips.c",
    161       "signal_processing/cross_correlation_mips.c",
    162       "signal_processing/downsample_fast_mips.c",
    163       "signal_processing/filter_ar_fast_q12_mips.c",
    164       "signal_processing/include/spl_inl_mips.h",
    165       "signal_processing/min_max_operations_mips.c",
    166       "signal_processing/resample_by_2_mips.c",
    167     ]
    168     if (mips_dsp_rev > 0) {
    169       sources += [ "signal_processing/vector_scaling_operations_mips.c" ]
    170     }
    171   } else {
    172     sources += [ "signal_processing/complex_fft.c" ]
    173   }
    174 
    175   if (target_cpu != "arm" && target_cpu != "mipsel") {
    176     sources += [
    177       "signal_processing/complex_bit_reverse.c",
    178       "signal_processing/filter_ar_fast_q12.c",
    179     ]
    180   }
    181 
    182   deps = [
    183     ":common_audio_c_arm_asm",
    184     ":common_audio_cc",
    185     "../rtc_base:checks",
    186     "../rtc_base:compile_assert_c",
    187     "../rtc_base:sanitizer",
    188     "../rtc_base/system:arch",
    189     "third_party/ooura:fft_size_256",
    190     "third_party/spl_sqrt_floor",
    191   ]
    192 }
    193 
    194 rtc_library("common_audio_cc") {
    195   visibility += webrtc_default_visibility
    196   sources = [
    197     "signal_processing/dot_product_with_scale.cc",
    198     "signal_processing/dot_product_with_scale.h",
    199   ]
    200 
    201   deps = [ "../rtc_base:safe_conversions" ]
    202 }
    203 
    204 rtc_source_set("sinc_resampler") {
    205   sources = [ "resampler/sinc_resampler.h" ]
    206   deps = [
    207     "../rtc_base:cpu_info",
    208     "../rtc_base:gtest_prod",
    209     "../rtc_base/memory:aligned_malloc",
    210     "../rtc_base/system:arch",
    211   ]
    212 }
    213 
    214 rtc_source_set("fir_filter") {
    215   visibility += webrtc_default_visibility
    216   sources = [ "fir_filter.h" ]
    217 }
    218 
    219 rtc_library("fir_filter_factory") {
    220   visibility += webrtc_default_visibility
    221   sources = [
    222     "fir_filter_c.cc",
    223     "fir_filter_c.h",
    224     "fir_filter_factory.cc",
    225     "fir_filter_factory.h",
    226   ]
    227   deps = [
    228     ":fir_filter",
    229     "../rtc_base:checks",
    230     "../rtc_base:cpu_info",
    231     "../rtc_base/system:arch",
    232   ]
    233   if (target_cpu == "x86" || target_cpu == "x64") {
    234     deps += [ ":common_audio_sse2" ]
    235     deps += [ ":common_audio_avx2" ]
    236   }
    237   if (rtc_build_with_neon) {
    238     deps += [ ":common_audio_neon" ]
    239   }
    240 }
    241 
    242 if (target_cpu == "x86" || target_cpu == "x64") {
    243   rtc_library("common_audio_sse2") {
    244     sources = [
    245       "fir_filter_sse.cc",
    246       "fir_filter_sse.h",
    247       "resampler/sinc_resampler_sse.cc",
    248     ]
    249 
    250     if (is_posix || is_fuchsia) {
    251       cflags = [ "-msse2" ]
    252     }
    253 
    254     deps = [
    255       ":fir_filter",
    256       ":sinc_resampler",
    257       "../rtc_base:checks",
    258       "../rtc_base/memory:aligned_malloc",
    259     ]
    260   }
    261 
    262   rtc_library("common_audio_avx2") {
    263     sources = [
    264       "fir_filter_avx2.cc",
    265       "fir_filter_avx2.h",
    266       "resampler/sinc_resampler_avx2.cc",
    267     ]
    268 
    269       cflags = [
    270         "-mavx2",
    271         "-mfma",
    272       ]
    273 
    274     deps = [
    275       ":fir_filter",
    276       ":sinc_resampler",
    277       "../rtc_base:checks",
    278       "../rtc_base/memory:aligned_malloc",
    279     ]
    280   }
    281 }
    282 
    283 if (rtc_build_with_neon) {
    284   rtc_library("common_audio_neon") {
    285     sources = [
    286       "fir_filter_neon.cc",
    287       "fir_filter_neon.h",
    288       "resampler/sinc_resampler_neon.cc",
    289     ]
    290 
    291     if (target_cpu != "arm64") {
    292       # Enable compilation for the NEON instruction set.
    293       suppressed_configs += [ "//chromium/build/config/compiler:compiler_arm_fpu" ]
    294       cflags = [ "-mfpu=neon" ]
    295     }
    296 
    297     deps = [
    298       ":common_audio_neon_c",
    299       ":fir_filter",
    300       ":sinc_resampler",
    301       "../rtc_base:checks",
    302       "../rtc_base/memory:aligned_malloc",
    303     ]
    304   }
    305 
    306   rtc_library("common_audio_neon_c") {
    307     visibility += webrtc_default_visibility
    308     sources = [
    309       "signal_processing/cross_correlation_neon.c",
    310       "signal_processing/downsample_fast_neon.c",
    311       "signal_processing/min_max_operations_neon.c",
    312     ]
    313 
    314     if (target_cpu != "arm64") {
    315       # Enable compilation for the NEON instruction set.
    316       suppressed_configs += [ "//chromium/build/config/compiler:compiler_arm_fpu" ]
    317       cflags = [ "-mfpu=neon" ]
    318     }
    319 
    320     deps = [
    321       ":common_audio_c",
    322       "../rtc_base:checks",
    323       "../rtc_base/system:arch",
    324     ]
    325   }
    326 }
    327 
    328 if (rtc_include_tests && !build_with_chromium) {
    329   rtc_test("common_audio_unittests") {
    330     visibility += webrtc_default_visibility
    331     testonly = true
    332 
    333     sources = [
    334       "allocation_counter.cc",
    335       "allocation_counter.h",
    336       "audio_converter_unittest.cc",
    337       "audio_util_unittest.cc",
    338       "channel_buffer_unittest.cc",
    339       "fir_filter_unittest.cc",
    340       "real_fourier_unittest.cc",
    341       "resampler/push_resampler_unittest.cc",
    342       "resampler/push_sinc_resampler_unittest.cc",
    343       "resampler/resampler_unittest.cc",
    344       "resampler/sinusoidal_linear_chirp_source.cc",
    345       "resampler/sinusoidal_linear_chirp_source.h",
    346       "ring_buffer_unittest.cc",
    347       "signal_processing/real_fft_unittest.cc",
    348       "signal_processing/signal_processing_unittest.cc",
    349       "smoothing_filter_unittest.cc",
    350       "vad/vad_core_unittest.cc",
    351       "vad/vad_filterbank_unittest.cc",
    352       "vad/vad_gmm_unittest.cc",
    353       "vad/vad_sp_unittest.cc",
    354       "vad/vad_unittest.cc",
    355       "vad/vad_unittest.h",
    356       "wav_file_unittest.cc",
    357       "wav_header_unittest.cc",
    358       "window_generator_unittest.cc",
    359     ]
    360 
    361     # Does not compile on iOS for arm: webrtc:5544.
    362     if (!is_ios || target_cpu != "arm") {
    363       sources += [ "resampler/sinc_resampler_unittest.cc" ]
    364     }
    365 
    366     deps = [
    367       ":common_audio",
    368       ":common_audio_c",
    369       ":common_audio_cc",
    370       ":fir_filter",
    371       ":fir_filter_factory",
    372       ":sinc_resampler",
    373       "../api/audio:audio_frame_api",
    374       "../api/units:time_delta",
    375       "../api/units:timestamp",
    376       "../rtc_base:checks",
    377       "../rtc_base:cpu_info",
    378       "../rtc_base:logging",
    379       "../rtc_base:rtc_base_tests_utils",
    380       "../rtc_base:stringutils",
    381       "../rtc_base:timeutils",
    382       "../rtc_base/system:arch",
    383       "../test:fileutils",
    384       "../test:rtc_expect_death",
    385       "../test:test_main",
    386       "../test:test_support",
    387       "//testing/gtest",
    388       "//third_party/abseil-cpp/absl/base:core_headers",
    389     ]
    390 
    391     if (is_android) {
    392       shard_timeout = 900
    393     }
    394   }
    395 }