build/gyp.mozbuild
author Chris H-C <chutten@mozilla.com>
Mon, 04 Jul 2016 11:16:05 -0400
changeset 312997 df28918fe2361f0b54ca9ce4773a29c4c0675d06
parent 306127 3ec6380fca8207fa199693206a3ca24975bf9833
permissions -rw-r--r--
bug 1218576 - Support remote accumulation via JS histograms. r=gfritzsche The JS histograms, too, need to dispatch their accumulations from child to parent. JSHistograms_Add now only supports histograms that are in gHistogramsMap or that were created in the parent process. After bug 1288745, maybe we'll be able to change this to be less convoluted. MozReview-Commit-ID: 3qTH89YKbGP

# -*- 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',
}

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']