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 (5350524bb654)

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
# -*- 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
# 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/.

gyp_vars = {
    'lsan': 0,
    'asan': 0,
    'build_with_mozilla': 1,
    'build_with_chromium': 0,
    'use_official_google_api_keys': 0,
    'have_clock_monotonic': 1 if CONFIG['HAVE_CLOCK_MONOTONIC'] else 0,
    'have_ethtool_cmd_speed_hi': 1 if CONFIG['MOZ_WEBRTC_HAVE_ETHTOOL_SPEED_HI'] else 0,
    'include_alsa_audio': 1 if CONFIG['MOZ_ALSA'] else 0,
    'include_pulse_audio': 1 if CONFIG['MOZ_PULSEAUDIO'] else 0,
    # basic stuff for everything
    'include_internal_video_render': 0,
    'clang_use_chrome_plugins': 0,
    'enable_protobuf': 0,
    'include_tests': 0,
    'enable_android_opensl': 1,
    'enable_android_opensl_output': 0,
    # use_system_lib* still seems to be in use in trunk/build
    'use_system_libjpeg': 0,
    'use_system_libvpx': 0,
    'build_json': 0,
    'build_libjpeg': 0,
    'build_libyuv': 0,
    'build_libvpx': 0,
    'build_ssl': 0,
    'build_json': 0,
    'build_icu': 0,
    'build_opus': 0,
    'libyuv_dir': '/media/libyuv',
    'yuv_disable_avx2': 0 if CONFIG['HAVE_X86_AVX2'] else 1,
    # don't use openssl
    'use_openssl': 0,

    'use_x11': 1 if CONFIG['MOZ_X11'] else 0,
    'use_glib': 1 if CONFIG['GLIB_LIBS'] else 0,

     # turn off mandatory use of NEON and instead use NEON detection
    'arm_neon': 0,
    'arm_neon_optional': 1,

    'moz_widget_toolkit_gonk': 0,
    'moz_webrtc_omx': 0,
    'moz_webrtc_mediacodec': 0,

    # Turn off multi monitor screen share
    'multi_monitor_screenshare%' : 0,

    # (for vp8) chromium sets to 0 also
    'use_temporal_layers': 0,

    # Creates AEC internal sample dump files in current directory
    'aec_debug_dump': 1,

    # Enable and force use of hardware AEC
    'hardware_aec_ns': 1 if CONFIG['MOZ_WEBRTC_HARDWARE_AEC_NS'] else 0,

    # codec enable/disables:
    'include_g711': 1,
    'include_opus': 1,
    'include_g722': 1,
    'include_ilbc': 0,
    # We turn on ISAC because the AGC uses parts of it, and depend on the
    # linker to throw away uneeded bits.
    'include_isac': 1,
    'include_pcm16b': 1,
}

os = CONFIG['OS_TARGET']

if os == 'WINNT':
    gyp_vars.update(
        MSVS_VERSION=CONFIG['_MSVS_VERSION'],
        MSVS_OS_BITS=64 if CONFIG['HAVE_64BIT_BUILD'] else 32,
    )
elif os == 'Android':
    if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
        gyp_vars['build_with_gonk'] = 1
        gyp_vars['moz_widget_toolkit_gonk'] = 1
        gyp_vars['opus_complexity'] = 1
        if int(CONFIG['ANDROID_VERSION']) >= 18:
          gyp_vars['moz_webrtc_omx'] = 1
    else:
        gyp_vars.update(
            gtest_target_type='executable',
            moz_webrtc_mediacodec=1,
            android_toolchain=CONFIG.get('ANDROID_TOOLCHAIN', ''),
        )

flavors = {
    'WINNT': 'win',
    'Android': 'linux' if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk' else 'android',
    'Linux': 'linux',
    'Darwin': 'mac' if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa' else 'ios',
    'SunOS': 'solaris',
    'GNU/kFreeBSD': 'freebsd',
    'DragonFly': 'dragonfly',
    'FreeBSD': 'freebsd',
    'NetBSD': 'netbsd',
    'OpenBSD': 'openbsd',
}
gyp_vars['OS'] = flavors.get(os)

arches = {
    'x86_64': 'x64',
    'x86': 'ia32',
    'aarch64': 'arm64',
}

gyp_vars['target_arch'] = arches.get(CONFIG['CPU_ARCH'], CONFIG['CPU_ARCH'])

if CONFIG['ARM_ARCH']:
    if int(CONFIG['ARM_ARCH']) < 7:
        gyp_vars['armv7'] = 0
        gyp_vars['arm_neon_optional'] = 0
    elif os == 'Android':
        gyp_vars['armv7'] = 1
    else:
        # CPU detection for ARM works on Android only.  armv7 always uses CPU
        # detection, so we have to set armv7=0 for non-Android target
        gyp_vars['armv7'] = 0
    # For libyuv
    gyp_vars['arm_version'] = int(CONFIG['ARM_ARCH'])

# Don't try to compile ssse3/sse4.1 code if toolchain doesn't support
if CONFIG['INTEL_ARCHITECTURE']:
    if not CONFIG['HAVE_TOOLCHAIN_SUPPORT_MSSSE3'] or not CONFIG['HAVE_TOOLCHAIN_SUPPORT_MSSE4_1']:
        gyp_vars['yuv_disable_asm'] = 1

if CONFIG['MACOS_SDK_DIR']:
    gyp_vars['mac_sdk_path'] = CONFIG['MACOS_SDK_DIR']