DXR will be turned off on Tuesday, December 29th. It will redirect to Searchfox.
See the announcement on Discourse.

DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (c68fe15a81fc)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

with Files("**"):
    BUG_COMPONENT = ("Core", "WebRTC")
    BUG_COMPONENT = ("Core", "WebRTC")

with Files("signaling/**"):
    BUG_COMPONENT = ("Core", "WebRTC: Signaling")

include('/build/gyp.mozbuild')
include('/build/gyp.mozbuild')
include('/build/gn.mozbuild')

webrtc_non_unified_sources = [
    'trunk/webrtc/common_audio/vad/vad_core.c',                                  # Because of name clash in the kInitCheck variable
    'trunk/webrtc/common_audio/vad/webrtc_vad.c',                                # Because of name clash in the kInitCheck variable
    'trunk/webrtc/common_audio/vad/webrtc_vad.c',                                # Because of name clash in the kInitCheck variable
    'trunk/webrtc/modules/audio_coding/acm2/codec_manager.cc',                   # Because of duplicate IsCodecRED/etc
    'trunk/webrtc/modules/audio_coding/codecs/g722/g722_decode.c',               # Because of name clash in the saturate function
    'trunk/webrtc/modules/audio_coding/codecs/g722/g722_encode.c',               # Because of name clash in the saturate function
    'trunk/webrtc/modules/audio_coding/codecs/isac/fix/source/decode_plc.c',   # Because of name clash in the exp2_Q10_T function
    'trunk/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model.c',   # Because of name clash in the exp2_Q10_T function
    'trunk/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter.c',   # Because of name clash in the kDampFilter variable
    'trunk/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_c.c', # Because of name clash in the kDampFilter variable
    'trunk/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_c.c', # Because of name clash in the kDampFilter variable
    'trunk/webrtc/modules/audio_coding/neteq/audio_vector.cc',                   # Because of explicit template specializations
    'trunk/webrtc/modules/audio_device/android/audio_manager.cc',                # Because of TAG redefinition
    'trunk/webrtc/modules/audio_device/android/audio_record_jni.cc',             # Becuse of commonly named module static vars
    'trunk/webrtc/modules/audio_device/android/audio_track_jni.cc',              # Becuse of commonly named module static vars
    'trunk/webrtc/modules/audio_device/android/opensles_player.cc',              # Because of TAG redefinition
    'trunk/webrtc/modules/audio_device/android/opensles_player.cc',              # Because of TAG redefinition
    'trunk/webrtc/modules/audio_device/linux/audio_device_pulse_linux.cc',       # Because of LATE()
    'trunk/webrtc/modules/audio_device/linux/audio_mixer_manager_pulse_linux.cc',# Because of LATE()
    'trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc',            # Because of ordering assumptions in strsafe.h
    'trunk/webrtc/modules/audio_processing/aec/echo_cancellation.cc',            # Because of conflicts over 'near' on windows
    'trunk/webrtc/modules/audio_processing/aecm/aecm_core.cc',                   # Because of the PART_LEN2 define
    'trunk/webrtc/modules/audio_processing/aecm/aecm_core.cc',                   # Because of the PART_LEN2 define
    'trunk/webrtc/modules/audio_processing/aecm/aecm_core_c.cc',                 # Because of the PART_LEN2 define
    'trunk/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc',              # Because of the PART_LEN2 define
    'trunk/webrtc/modules/audio_processing/aecm/aecm_core_neon.cc',              # Because of the PART_LEN2 define
    'trunk/webrtc/modules/audio_processing/aecm/echo_control_mobile.cc',         # Because of the PART_LEN2 define
    'trunk/webrtc/modules/audio_processing/agc/legacy/analog_agc.c',             # Because of name clash in the kInitCheck variable
    'trunk/webrtc/modules/audio_processing/agc/legacy/analog_agc.c',             # Because of name clash in the kInitCheck variable
    'trunk/webrtc/modules/audio_processing/beamformer/covariance_matrix_generator.cc', # Because of needing to define _USE_MATH_DEFINES before including <cmath>
    'trunk/webrtc/modules/audio_processing/beamformer/covariance_matrix_generator.cc',  # Because of needing to define _USE_MATH_DEFINES before including <cmath>
    'trunk/webrtc/modules/audio_processing/beamformer/nonlinear_beamformer.cc',  # Because of needing to define _USE_MATH_DEFINES before including <cmath>
    'trunk/webrtc/modules/audio_processing/echo_cancellation_impl.cc',           # Because of name clash in the MapError function
    'trunk/webrtc/modules/audio_processing/echo_control_mobile_impl.cc',         # Because of name clash in the MapError function
    'trunk/webrtc/modules/audio_processing/echo_control_mobile_impl.cc',         # Because of name clash in the MapError function
    'trunk/webrtc/modules/audio_processing/echo_detector/normalized_covariance_estimator.cc', # Because of kAlpha
    'trunk/webrtc/modules/audio_processing/gain_control_impl.cc',                # Because of name clash in the Handle typedef
    'trunk/webrtc/modules/audio_processing/noise_suppression_impl.cc',           # Because of name clash in the Handle typedef
    'trunk/webrtc/modules/audio_processing/rms_level.cc',                        # Because of name clash in the kMinLevel variable
    'trunk/webrtc/modules/congestion_controller/trendline_estimator.cc',         # Because of name clash in kDeltaCounterMax
    'trunk/webrtc/modules/congestion_controller/trendline_estimator.cc',         # Because of name clash in kDeltaCounterMax
    'trunk/webrtc/modules/desktop_capture/win/screen_capturer_win_gdi.cc',       # Because base/logging.h uses #ifndef LOG before defining anything
    'trunk/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.cc', # Because of duplicate definitions of static consts against remote_bitrate_estimator_abs_send_time.cc
    'trunk/webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc',                  # Because of identically named functions and vars between flexfec_receiver.cc and flexfec_sender.cc in an anonymous namespaces
    'trunk/webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbn.cc',                 # Because of identically named functions and vars between tmmbr.cc and tmmbn.cc in an anonymous namespaces
    'trunk/webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbr.cc',                 # Because of identically named functions and vars between tmmbr.cc and tmmbn.cc in an anonymous namespaces
    'trunk/webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbr.cc',                 # Because of identically named functions and vars between tmmbr.cc and tmmbn.cc in an anonymous namespaces
    'trunk/webrtc/modules/rtp_rtcp/source/ulpfec_generator.cc',                  # Because of identically named constant kRedForFecHeaderLength in an anonymous namespace
    'trunk/webrtc/modules/video_capture/windows/device_info_ds.cc',              # Because of the MEDIASUBTYPE_HDYC variable
    'trunk/webrtc/modules/video_capture/windows/help_functions_ds.cc',           # Because of initguid.h
    'trunk/webrtc/modules/video_capture/windows/sink_filter_ds.cc',              # Because of the MEDIASUBTYPE_HDYC variable and initguid.h
    'trunk/webrtc/video/overuse_frame_detector.cc',                              # Because of name clash with call_stats.cc on kWeightFactor
    'trunk/webrtc/video/overuse_frame_detector.cc',                              # Because of name clash with call_stats.cc on kWeightFactor
]

# Set gyp vars that webrtc needs when building under various analysis tools.
# Primarily this prevents webrtc from setting NVALGRIND and breaking builds.
gyp_vars_copy = gyp_vars.copy()
gyp_vars_copy = gyp_vars.copy()
if CONFIG['MOZ_VALGRIND']:
    gyp_vars_copy.update(build_for_tool="memcheck")
elif CONFIG['MOZ_ASAN']:
    gyp_vars_copy.update(build_for_tool="asan")
    gyp_vars_copy.update(build_for_tool="asan")
elif CONFIG['MOZ_TSAN']:
    gyp_vars_copy.update(build_for_tool="tsan")

GN_DIRS += ['trunk/webrtc']


gn_vars_copy = gn_vars.copy()

GN_DIRS['trunk/webrtc'].variables = gn_vars_copy
GN_DIRS['trunk/webrtc'].mozilla_flags = [
    '-fobjc-arc',
    '-mfpu=neon',
    '-msse2',
    '-msse2',
]
GN_DIRS['trunk/webrtc'].gn_target = '//:webrtc'
# We allow warnings for third-party code that can be updated from upstream.
GN_DIRS['trunk/webrtc'].sandbox_vars['COMPILE_FLAGS'] = {'WARNINGS_AS_ERRORS': []}
GN_DIRS['trunk/webrtc'].sandbox_vars['FINAL_LIBRARY'] = 'webrtc'
GN_DIRS['trunk/webrtc'].sandbox_vars['FINAL_LIBRARY'] = 'webrtc'
GN_DIRS['trunk/webrtc'].non_unified_sources += webrtc_non_unified_sources

if CONFIG['MOZ_WEBRTC_SIGNALING']:
    DIRS += [
        'signaling/src/common',
        'signaling/src/common',
        'signaling/src/jsep',
        'signaling/src/media-conduit',
        'signaling/src/mediapipeline',
        'signaling/src/peerconnection',
        'signaling/src/sdp'
    ]
    GYP_DIRS += ['trunk/third_party/gflags']
    GYP_DIRS += ['trunk/third_party/gflags']
    GYP_DIRS['trunk/third_party/gflags'].input = 'trunk/third_party/gflags/gflags.gyp'
    GYP_DIRS['trunk/third_party/gflags'].variables = gyp_vars_copy
    GYP_DIRS['trunk/third_party/gflags'].sandbox_vars['COMPILE_FLAGS'] = {'WARNINGS_AS_ERRORS': []}

    # Avoid warnings from third-party code that we can not modify.
    # Avoid warnings from third-party code that we can not modify.
    if CONFIG['CC_TYPE'] == 'clang-cl':
        CXXFLAGS += ['-Wno-invalid-source-encoding']

    if CONFIG['ENABLE_TESTS']:
        TEST_DIRS += [
        TEST_DIRS += [
            'signaling/gtest',
        ]

    # Add libFuzzer configuration directives
    include('/tools/fuzzing/libfuzzer-config.mozbuild')
    # Add libFuzzer configuration directives
    if CONFIG['FUZZING_INTERFACES']:
        TEST_DIRS += [
            'signaling/fuzztest'
        ]
        ]