mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 07:13:20 +00:00
9c83bc8f96
Landing as one rolled-up patch to avoid breaking regression tests, and in keeping with previous WebRTC imports. Broken out parts that needed review are on the bug.
136 lines
4.2 KiB
Python
136 lines
4.2 KiB
Python
# -*- Mode: python; c-basic-offset: 4; 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['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']
|