Source code
Revision control
Copy as Markdown
Other Tools
# -*- 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
include("/dom/media/webrtc/third_party_build/webrtc.mozbuild")
with Files("**"):
BUG_COMPONENT = ("Core", "WebRTC: Audio/Video")
with Files("PeerIdentity.*"):
BUG_COMPONENT = ("Core", "WebRTC: Signaling")
with Files("common/**"):
BUG_COMPONENT = ("Core", "WebRTC: Signaling")
with Files("jsep/**"):
BUG_COMPONENT = ("Core", "WebRTC: Signaling")
with Files("libwebrtcglue/**"):
BUG_COMPONENT = ("Core", "WebRTC: Signaling")
with Files("transportbridge/**"):
BUG_COMPONENT = ("Core", "WebRTC: Signaling")
with Files("jsapi/**"):
BUG_COMPONENT = ("Core", "WebRTC: Signaling")
with Files("sdp/**"):
BUG_COMPONENT = ("Core", "WebRTC: Signaling")
with Files("third_party_build/**"):
BUG_COMPONENT = ("Core", "WebRTC")
EXPORTS += [
"CubebDeviceEnumerator.h",
"MediaEngine.h",
"MediaEngineFake.h",
"MediaEnginePrefs.h",
"MediaEngineSource.h",
"MediaTrackConstraints.h",
"SineWaveGenerator.h",
]
SOURCES += [
"CubebDeviceEnumerator.cpp",
]
if CONFIG["MOZ_WEBRTC"]:
EXPORTS += [
"MediaEngineRemoteVideoSource.h",
"MediaEngineWebRTC.h",
"MediaEngineWebRTCAudio.h",
]
EXPORTS.mozilla.dom += ["RTCIdentityProviderRegistrar.h"]
UNIFIED_SOURCES += [
"MediaEngineRemoteVideoSource.cpp",
"MediaEngineWebRTCAudio.cpp",
"RTCCertificate.cpp",
"RTCIdentityProviderRegistrar.cpp",
]
# MediaEngineWebRTC.cpp needs to be built separately.
SOURCES += [
"MediaEngineWebRTC.cpp",
]
PREPROCESSED_IPDL_SOURCES += [
"PWebrtcGlobal.ipdl",
]
LOCAL_INCLUDES += [
"..",
"/dom/base",
"/dom/media",
"/dom/media/webrtc/common",
"/dom/media/webrtc/common/browser_logging",
"/media/libyuv/libyuv/include",
"/third_party/abseil-cpp",
"/third_party/libwebrtc",
]
if CONFIG["MOZ_WEBRTC_SIGNALING"]:
DIRS += [
"common",
"jsapi",
"jsep",
"libwebrtcglue",
"sdp",
"transportbridge",
"/third_party/libwebrtc",
"/third_party/abseil-cpp",
]
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
DIRS += [
"/third_party/drm/",
"/third_party/drm/libdrm",
"/third_party/gbm/",
"/third_party/gbm/libgbm",
"/third_party/libepoxy/",
"/third_party/pipewire/libpipewire",
]
# Avoid warnings from third-party code that we can not modify.
if CONFIG["CC_TYPE"] == "clang-cl":
CXXFLAGS += ["-Wno-invalid-source-encoding"]
PREPROCESSED_IPDL_SOURCES += [
"PMediaTransport.ipdl",
]
UNIFIED_SOURCES += [
"MediaEngineFake.cpp",
"MediaEngineSource.cpp",
"MediaTrackConstraints.cpp",
"PeerIdentity.cpp",
]
EXPORTS.mozilla += [
"PeerIdentity.h",
]
EXPORTS.mozilla.dom += [
"RTCCertificate.h",
]
include("/ipc/chromium/chromium-config.mozbuild")
# Suppress some GCC/clang warnings being treated as errors:
# - about attributes on forward declarations for types that are already
# defined, which complains about important MOZ_EXPORT attributes for
# android API types
CXXFLAGS += [
"-Wno-error=attributes",
]
FINAL_LIBRARY = "xul"
# Add libFuzzer configuration directives
include("/tools/fuzzing/libfuzzer-config.mozbuild")