forked from mirrors/gecko-dev
Bug 1824170: Reduce our opportunities for merge conflicts around pipewire build config. r=mjf,ng,webrtc-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D173588
This commit is contained in:
parent
7511950acd
commit
f0d6d76a43
11 changed files with 267 additions and 44 deletions
|
|
@ -288,10 +288,9 @@ if (rtc_include_tests) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!build_with_mozilla) {
|
||||||
if (is_linux || is_chromeos) {
|
if (is_linux || is_chromeos) {
|
||||||
if (rtc_use_pipewire) {
|
if (rtc_use_pipewire) {
|
||||||
defines = [ "WEBRTC_USE_PIPEWIRE" ]
|
|
||||||
if (!build_with_mozilla) {
|
|
||||||
pkg_config("gio") {
|
pkg_config("gio") {
|
||||||
packages = [
|
packages = [
|
||||||
"gio-2.0",
|
"gio-2.0",
|
||||||
|
|
@ -305,9 +304,7 @@ if (is_linux || is_chromeos) {
|
||||||
ignore_libs = true
|
ignore_libs = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (!build_with_mozilla) {
|
|
||||||
pkg_config("gbm") {
|
pkg_config("gbm") {
|
||||||
packages = [ "gbm" ]
|
packages = [ "gbm" ]
|
||||||
}
|
}
|
||||||
|
|
@ -321,12 +318,10 @@ if (!build_with_mozilla) {
|
||||||
pkg_config("libdrm") {
|
pkg_config("libdrm") {
|
||||||
packages = [ "libdrm" ]
|
packages = [ "libdrm" ]
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (!rtc_link_pipewire) {
|
if (!rtc_link_pipewire) {
|
||||||
# When libpipewire is not directly linked, use stubs to allow for dlopening of
|
# When libpipewire is not directly linked, use stubs to allow for dlopening of
|
||||||
# the binary.
|
# the binary.
|
||||||
if (!build_with_mozilla) {
|
|
||||||
generate_stubs("pipewire_stubs") {
|
generate_stubs("pipewire_stubs") {
|
||||||
configs = [
|
configs = [
|
||||||
"../../:common_config",
|
"../../:common_config",
|
||||||
|
|
@ -344,13 +339,10 @@ if (!build_with_mozilla) {
|
||||||
macro_deps = [ "../../rtc_base/system:no_cfi_icall" ]
|
macro_deps = [ "../../rtc_base/system:no_cfi_icall" ]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
config("pipewire_config") {
|
config("pipewire_config") {
|
||||||
if (!build_with_mozilla) {
|
defines = [ "WEBRTC_USE_PIPEWIRE" ]
|
||||||
defines = [ "WEBRTC_USE_PIPEWIRE" ]
|
|
||||||
}
|
|
||||||
if (!rtc_link_pipewire) {
|
if (!rtc_link_pipewire) {
|
||||||
defines += [ "WEBRTC_DLOPEN_PIPEWIRE" ]
|
defines += [ "WEBRTC_DLOPEN_PIPEWIRE" ]
|
||||||
}
|
}
|
||||||
|
|
@ -364,11 +356,11 @@ if (!build_with_mozilla) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} # !build_with_mozilla
|
||||||
|
|
||||||
rtc_library("desktop_capture") {
|
rtc_library("desktop_capture") {
|
||||||
visibility = [ "*" ]
|
visibility = [ "*" ]
|
||||||
defines = []
|
defines = []
|
||||||
include_dirs = []
|
|
||||||
deps = []
|
deps = []
|
||||||
public_configs = [ ":x11_config" ]
|
public_configs = [ ":x11_config" ]
|
||||||
sources = [
|
sources = [
|
||||||
|
|
@ -603,11 +595,6 @@ rtc_library("desktop_capture") {
|
||||||
}
|
}
|
||||||
|
|
||||||
deps += [ "//third_party/libyuv" ]
|
deps += [ "//third_party/libyuv" ]
|
||||||
if (build_with_mozilla) {
|
|
||||||
include_dirs += [
|
|
||||||
"/third_party/pipewire",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
if (use_desktop_capture_differ_sse2) {
|
if (use_desktop_capture_differ_sse2) {
|
||||||
deps += [ ":desktop_capture_differ_sse2" ]
|
deps += [ ":desktop_capture_differ_sse2" ]
|
||||||
|
|
@ -642,18 +629,11 @@ rtc_library("desktop_capture") {
|
||||||
]
|
]
|
||||||
|
|
||||||
if (build_with_mozilla) {
|
if (build_with_mozilla) {
|
||||||
include_dirs += [
|
deps += ["//third_party/pipewire",
|
||||||
"/gfx/angle/checkout/include",
|
"//third_party/drm",
|
||||||
"/third_party/drm/drm",
|
"//third_party/gbm",
|
||||||
"/third_party/drm/drm/include",
|
"//third_party/libepoxy"]
|
||||||
"/third_party/drm/drm/include/libdrm",
|
} else { # build_with_mozilla else !build_with_mozilla
|
||||||
"/third_party/drm/libdrm",
|
|
||||||
"/third_party/gbm/gbm",
|
|
||||||
"/third_party/libepoxy/libepoxy/include",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!build_with_mozilla) {
|
|
||||||
configs += [
|
configs += [
|
||||||
":gio",
|
":gio",
|
||||||
":pipewire",
|
":pipewire",
|
||||||
|
|
@ -662,27 +642,13 @@ rtc_library("desktop_capture") {
|
||||||
":epoxy",
|
":epoxy",
|
||||||
":libdrm",
|
":libdrm",
|
||||||
]
|
]
|
||||||
}
|
|
||||||
|
|
||||||
if (!rtc_link_pipewire) {
|
if (!rtc_link_pipewire) {
|
||||||
if (!build_with_mozilla) {
|
|
||||||
deps += [ ":pipewire_stubs" ]
|
deps += [ ":pipewire_stubs" ]
|
||||||
}
|
|
||||||
|
|
||||||
if (!build_with_mozilla) {
|
|
||||||
configs += [
|
|
||||||
":gio",
|
|
||||||
":pipewire",
|
|
||||||
]
|
|
||||||
} else {
|
|
||||||
defines += [ "WEBRTC_USE_PIPEWIRE" ]
|
|
||||||
include_dirs += [ "/third_party/pipewire" ]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!build_with_mozilla) {
|
public_configs += [ ":pipewire_config" ]
|
||||||
public_configs += [ ":pipewire_config" ]
|
} # !build_with_mozilla
|
||||||
}
|
|
||||||
|
|
||||||
deps += [ "../../rtc_base:sanitizer" ]
|
deps += [ "../../rtc_base:sanitizer" ]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
30
third_party/libwebrtc/third_party/drm/BUILD.gn
vendored
Normal file
30
third_party/libwebrtc/third_party/drm/BUILD.gn
vendored
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
# -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||||
|
# vim: set ts=8 sts=2 et sw=2 tw=80:
|
||||||
|
#
|
||||||
|
# Copyright 2023 Mozilla Foundation
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
import("../../webrtc.gni")
|
||||||
|
|
||||||
|
config("drm_include_config") {
|
||||||
|
include_dirs = [
|
||||||
|
"/third_party/drm/drm",
|
||||||
|
"/third_party/drm/drm/include",
|
||||||
|
"/third_party/drm/drm/include/libdrm",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
rtc_library("drm") {
|
||||||
|
public_configs = [ ":drm_include_config" ]
|
||||||
|
}
|
||||||
23
third_party/libwebrtc/third_party/drm/drm/include/libdrm/drm.h
vendored
Normal file
23
third_party/libwebrtc/third_party/drm/drm/include/libdrm/drm.h
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||||
|
* vim: set ts=8 sts=2 et sw=2 tw=80:
|
||||||
|
*
|
||||||
|
* Copyright 2023 Mozilla Foundation
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
// This is a trampoline header meant to redirect from where libwebrtc code
|
||||||
|
// expects third_party headers to where those headers exist in the Mozilla
|
||||||
|
// Firefox repository.
|
||||||
|
#include "drm.h"
|
||||||
|
|
||||||
23
third_party/libwebrtc/third_party/drm/drm/include/libdrm/drm_fourcc.h
vendored
Normal file
23
third_party/libwebrtc/third_party/drm/drm/include/libdrm/drm_fourcc.h
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||||
|
* vim: set ts=8 sts=2 et sw=2 tw=80:
|
||||||
|
*
|
||||||
|
* Copyright 2023 Mozilla Foundation
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
// This is a trampoline header meant to redirect from where libwebrtc code
|
||||||
|
// expects third_party headers to where those headers exist in the Mozilla
|
||||||
|
// Firefox repository.
|
||||||
|
#include "libdrm/drm_fourcc.h"
|
||||||
|
|
||||||
23
third_party/libwebrtc/third_party/drm/drm/xf86drm.h
vendored
Normal file
23
third_party/libwebrtc/third_party/drm/drm/xf86drm.h
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||||
|
* vim: set ts=8 sts=2 et sw=2 tw=80:
|
||||||
|
*
|
||||||
|
* Copyright 2023 Mozilla Foundation
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
// This is a trampoline header meant to redirect from where libwebrtc code
|
||||||
|
// expects third_party headers to where those headers exist in the Mozilla
|
||||||
|
// Firefox repository.
|
||||||
|
#include "xf86drm.h"
|
||||||
|
|
||||||
29
third_party/libwebrtc/third_party/gbm/BUILD.gn
vendored
Normal file
29
third_party/libwebrtc/third_party/gbm/BUILD.gn
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
# -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||||
|
# vim: set ts=8 sts=2 et sw=2 tw=80:
|
||||||
|
#
|
||||||
|
# Copyright 2023 Mozilla Foundation
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
import("../../webrtc.gni")
|
||||||
|
|
||||||
|
config("gbm_include_config") {
|
||||||
|
include_dirs = [
|
||||||
|
"/third_party/gbm/gbm",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
rtc_library("gbm") {
|
||||||
|
public_configs = [ ":gbm_include_config" ]
|
||||||
|
}
|
||||||
|
|
||||||
23
third_party/libwebrtc/third_party/gbm/gbm/gbm.h
vendored
Normal file
23
third_party/libwebrtc/third_party/gbm/gbm/gbm.h
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||||
|
* vim: set ts=8 sts=2 et sw=2 tw=80:
|
||||||
|
*
|
||||||
|
* Copyright 2023 Mozilla Foundation
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
// This is a trampoline header meant to redirect from where libwebrtc code
|
||||||
|
// expects third_party headers to where those headers exist in the Mozilla
|
||||||
|
// Firefox repository.
|
||||||
|
#include "gbm.h"
|
||||||
|
|
||||||
31
third_party/libwebrtc/third_party/libepoxy/BUILD.gn
vendored
Normal file
31
third_party/libwebrtc/third_party/libepoxy/BUILD.gn
vendored
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
# -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||||
|
# vim: set ts=8 sts=2 et sw=2 tw=80:
|
||||||
|
#
|
||||||
|
# Copyright 2023 Mozilla Foundation
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
import("../../webrtc.gni")
|
||||||
|
|
||||||
|
config("libepoxy_include_config") {
|
||||||
|
include_dirs = [
|
||||||
|
"/third_party/libepoxy/libepoxy/include",
|
||||||
|
"/gfx/angle/checkout/include"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
rtc_library("libepoxy") {
|
||||||
|
public_configs = [ ":libepoxy_include_config" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
23
third_party/libwebrtc/third_party/libepoxy/libepoxy/include/epoxy/egl.h
vendored
Normal file
23
third_party/libwebrtc/third_party/libepoxy/libepoxy/include/epoxy/egl.h
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||||
|
* vim: set ts=8 sts=2 et sw=2 tw=80:
|
||||||
|
*
|
||||||
|
* Copyright 2023 Mozilla Foundation
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
// This is a trampoline header meant to redirect from where libwebrtc code
|
||||||
|
// expects third_party headers to where those headers exist in the Mozilla
|
||||||
|
// Firefox repository.
|
||||||
|
#include "epoxy/egl.h"
|
||||||
|
|
||||||
29
third_party/libwebrtc/third_party/pipewire/BUILD.gn
vendored
Normal file
29
third_party/libwebrtc/third_party/pipewire/BUILD.gn
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
# -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||||
|
# vim: set ts=8 sts=2 et sw=2 tw=80:
|
||||||
|
#
|
||||||
|
# Copyright 2023 Mozilla Foundation
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
import("../../webrtc.gni")
|
||||||
|
|
||||||
|
config("pipewire_include_config") {
|
||||||
|
defines = [ "WEBRTC_USE_PIPEWIRE" ]
|
||||||
|
include_dirs = [
|
||||||
|
"/third_party/pipewire",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
rtc_library("pipewire") {
|
||||||
|
public_configs = [ ":pipewire_include_config" ]
|
||||||
|
}
|
||||||
23
third_party/libwebrtc/third_party/pipewire/pipewire/pipewire.h
vendored
Normal file
23
third_party/libwebrtc/third_party/pipewire/pipewire/pipewire.h
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||||
|
* vim: set ts=8 sts=2 et sw=2 tw=80:
|
||||||
|
*
|
||||||
|
* Copyright 2023 Mozilla Foundation
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
// This is a trampoline header meant to redirect from where libwebrtc code
|
||||||
|
// expects third_party headers to where those headers exist in the Mozilla
|
||||||
|
// Firefox repository.
|
||||||
|
#include "pipewire/pipewire.h"
|
||||||
|
|
||||||
Loading…
Reference in a new issue