From e0a071f2f6dc7a6d72e16f4a597d8fc1d8920dbb Mon Sep 17 00:00:00 2001 From: Byron Campen Date: Tue, 28 Mar 2023 13:15:36 +0000 Subject: [PATCH] Bug 1824170: Reduce our opportunities for merge conflicts around pipewire build config. r=ng,webrtc-reviewers - moz.build file updates Differential Revision: https://phabricator.services.mozilla.com/D173589 --- CLOBBER | 2 +- .../desktop_capture_gn/moz.build | 17 ++--- third_party/libwebrtc/moz.build | 24 +++++- .../third_party/drm/drm_gn/moz.build | 76 +++++++++++++++++++ .../third_party/gbm/gbm_gn/moz.build | 74 ++++++++++++++++++ .../libepoxy/libepoxy_gn/moz.build | 75 ++++++++++++++++++ .../pipewire/pipewire_gn/moz.build | 75 ++++++++++++++++++ 7 files changed, 329 insertions(+), 14 deletions(-) create mode 100644 third_party/libwebrtc/third_party/drm/drm_gn/moz.build create mode 100644 third_party/libwebrtc/third_party/gbm/gbm_gn/moz.build create mode 100644 third_party/libwebrtc/third_party/libepoxy/libepoxy_gn/moz.build create mode 100644 third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build diff --git a/CLOBBER b/CLOBBER index 4d6927c43462..be4689f2fa70 100644 --- a/CLOBBER +++ b/CLOBBER @@ -23,4 +23,4 @@ # don't change CLOBBER for WebIDL changes any more. -Modified build files in third_party/libwebrtc - Bug 1817024 - Vendor libwebrtc from 15a82c93d0 +Modified build files in third_party/libwebrtc - Bug 1824170: Reduce our opportunities for merge conflicts around pipewire build config. r?mjf diff --git a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build index 5cf17bae4d08..790be2a5472c 100644 --- a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build +++ b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build @@ -31,7 +31,6 @@ LOCAL_INCLUDES += [ "/media/libyuv/libyuv/include/", "/third_party/libwebrtc/", "/third_party/libwebrtc/third_party/abseil-cpp/", - "/third_party/pipewire/", "/tools/profiler/public" ] @@ -254,9 +253,9 @@ if CONFIG["CPU_ARCH"] == "arm": "/third_party/drm/drm/", "/third_party/drm/drm/include/", "/third_party/drm/drm/include/libdrm/", - "/third_party/drm/libdrm/", "/third_party/gbm/gbm/", - "/third_party/libepoxy/libepoxy/include/" + "/third_party/libepoxy/libepoxy/include/", + "/third_party/pipewire/" ] SOURCES += [ @@ -332,9 +331,9 @@ if CONFIG["CPU_ARCH"] == "aarch64" and CONFIG["OS_TARGET"] == "Linux": "/third_party/drm/drm/", "/third_party/drm/drm/include/", "/third_party/drm/drm/include/libdrm/", - "/third_party/drm/libdrm/", "/third_party/gbm/gbm/", - "/third_party/libepoxy/libepoxy/include/" + "/third_party/libepoxy/libepoxy/include/", + "/third_party/pipewire/" ] SOURCES += [ @@ -369,9 +368,9 @@ if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Linux": "/third_party/drm/drm/", "/third_party/drm/drm/include/", "/third_party/drm/drm/include/libdrm/", - "/third_party/drm/libdrm/", "/third_party/gbm/gbm/", - "/third_party/libepoxy/libepoxy/include/" + "/third_party/libepoxy/libepoxy/include/", + "/third_party/pipewire/" ] SOURCES += [ @@ -402,9 +401,9 @@ if CONFIG["CPU_ARCH"] == "x86_64" and CONFIG["OS_TARGET"] == "Linux": "/third_party/drm/drm/", "/third_party/drm/drm/include/", "/third_party/drm/drm/include/libdrm/", - "/third_party/drm/libdrm/", "/third_party/gbm/gbm/", - "/third_party/libepoxy/libepoxy/include/" + "/third_party/libepoxy/libepoxy/include/", + "/third_party/pipewire/" ] SOURCES += [ diff --git a/third_party/libwebrtc/moz.build b/third_party/libwebrtc/moz.build index 941cc7d4edf4..08c1b1e5cece 100644 --- a/third_party/libwebrtc/moz.build +++ b/third_party/libwebrtc/moz.build @@ -579,7 +579,11 @@ if CONFIG["CPU_ARCH"] == "aarch64" and CONFIG["OS_TARGET"] == "Linux": "/third_party/libwebrtc/modules/audio_coding/isac_c_gn", "/third_party/libwebrtc/modules/audio_coding/isac_gn", "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn", - "/third_party/libwebrtc/modules/desktop_capture/primitives_gn" + "/third_party/libwebrtc/modules/desktop_capture/primitives_gn", + "/third_party/libwebrtc/third_party/drm/drm_gn", + "/third_party/libwebrtc/third_party/gbm/gbm_gn", + "/third_party/libwebrtc/third_party/libepoxy/libepoxy_gn", + "/third_party/libwebrtc/third_party/pipewire/pipewire_gn" ] if CONFIG["CPU_ARCH"] == "arm" and CONFIG["OS_TARGET"] == "Linux": @@ -596,7 +600,11 @@ if CONFIG["CPU_ARCH"] == "arm" and CONFIG["OS_TARGET"] == "Linux": "/third_party/libwebrtc/modules/audio_coding/isac_neon_gn", "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn", "/third_party/libwebrtc/modules/desktop_capture/primitives_gn", - "/third_party/libwebrtc/rtc_base/system/asm_defines_gn" + "/third_party/libwebrtc/rtc_base/system/asm_defines_gn", + "/third_party/libwebrtc/third_party/drm/drm_gn", + "/third_party/libwebrtc/third_party/gbm/gbm_gn", + "/third_party/libwebrtc/third_party/libepoxy/libepoxy_gn", + "/third_party/libwebrtc/third_party/pipewire/pipewire_gn" ] if CONFIG["CPU_ARCH"] == "ppc64" and CONFIG["OS_TARGET"] == "Linux": @@ -621,7 +629,11 @@ if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Linux": "/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/vector_math_avx2_gn", "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_differ_sse2_gn", "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn", - "/third_party/libwebrtc/modules/desktop_capture/primitives_gn" + "/third_party/libwebrtc/modules/desktop_capture/primitives_gn", + "/third_party/libwebrtc/third_party/drm/drm_gn", + "/third_party/libwebrtc/third_party/gbm/gbm_gn", + "/third_party/libwebrtc/third_party/libepoxy/libepoxy_gn", + "/third_party/libwebrtc/third_party/pipewire/pipewire_gn" ] if CONFIG["CPU_ARCH"] == "x86_64" and CONFIG["OS_TARGET"] == "Linux": @@ -637,7 +649,11 @@ if CONFIG["CPU_ARCH"] == "x86_64" and CONFIG["OS_TARGET"] == "Linux": "/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/vector_math_avx2_gn", "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_differ_sse2_gn", "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn", - "/third_party/libwebrtc/modules/desktop_capture/primitives_gn" + "/third_party/libwebrtc/modules/desktop_capture/primitives_gn", + "/third_party/libwebrtc/third_party/drm/drm_gn", + "/third_party/libwebrtc/third_party/gbm/gbm_gn", + "/third_party/libwebrtc/third_party/libepoxy/libepoxy_gn", + "/third_party/libwebrtc/third_party/pipewire/pipewire_gn" ] if CONFIG["CPU_ARCH"] == "aarch64" and CONFIG["OS_TARGET"] == "OpenBSD": diff --git a/third_party/libwebrtc/third_party/drm/drm_gn/moz.build b/third_party/libwebrtc/third_party/drm/drm_gn/moz.build new file mode 100644 index 000000000000..cc1ff5827c29 --- /dev/null +++ b/third_party/libwebrtc/third_party/drm/drm_gn/moz.build @@ -0,0 +1,76 @@ +# 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/. + + + ### This moz.build was AUTOMATICALLY GENERATED from a GN config, ### + ### DO NOT edit it by hand. ### + +COMPILE_FLAGS["OS_INCLUDES"] = [] +AllowCompilerWarnings() + +DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1" +DEFINES["RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY"] = True +DEFINES["RTC_ENABLE_VP9"] = True +DEFINES["USE_AURA"] = "1" +DEFINES["USE_GLIB"] = "1" +DEFINES["USE_NSS_CERTS"] = "1" +DEFINES["USE_OZONE"] = "1" +DEFINES["USE_UDEV"] = True +DEFINES["WEBRTC_ENABLE_AVX2"] = True +DEFINES["WEBRTC_ENABLE_PROTOBUF"] = "0" +DEFINES["WEBRTC_LIBRARY_IMPL"] = True +DEFINES["WEBRTC_LINUX"] = True +DEFINES["WEBRTC_MOZILLA_BUILD"] = True +DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0" +DEFINES["WEBRTC_POSIX"] = True +DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0" +DEFINES["_FILE_OFFSET_BITS"] = "64" +DEFINES["_GNU_SOURCE"] = True +DEFINES["_LARGEFILE64_SOURCE"] = True +DEFINES["_LARGEFILE_SOURCE"] = True +DEFINES["__STDC_CONSTANT_MACROS"] = True +DEFINES["__STDC_FORMAT_MACROS"] = True + +FINAL_LIBRARY = "webrtc" + + +LOCAL_INCLUDES += [ + "!/ipc/ipdl/_ipdlheaders", + "!/third_party/libwebrtc/gen", + "/ipc/chromium/src", + "/third_party/drm/drm/", + "/third_party/drm/drm/include/", + "/third_party/drm/drm/include/libdrm/", + "/third_party/libwebrtc/", + "/third_party/libwebrtc/third_party/abseil-cpp/", + "/tools/profiler/public" +] + +if not CONFIG["MOZ_DEBUG"]: + + DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0" + DEFINES["NDEBUG"] = True + DEFINES["NVALGRIND"] = True + +if CONFIG["MOZ_DEBUG"] == "1": + + DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "1" + DEFINES["_DEBUG"] = True + +if CONFIG["CPU_ARCH"] == "aarch64": + + DEFINES["WEBRTC_ARCH_ARM64"] = True + DEFINES["WEBRTC_HAS_NEON"] = True + +if CONFIG["CPU_ARCH"] == "arm": + + DEFINES["WEBRTC_ARCH_ARM"] = True + DEFINES["WEBRTC_ARCH_ARM_V7"] = True + DEFINES["WEBRTC_HAS_NEON"] = True + +if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux": + + DEFINES["USE_X11"] = "1" + +Library("drm_gn") diff --git a/third_party/libwebrtc/third_party/gbm/gbm_gn/moz.build b/third_party/libwebrtc/third_party/gbm/gbm_gn/moz.build new file mode 100644 index 000000000000..0dcdcd3d191a --- /dev/null +++ b/third_party/libwebrtc/third_party/gbm/gbm_gn/moz.build @@ -0,0 +1,74 @@ +# 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/. + + + ### This moz.build was AUTOMATICALLY GENERATED from a GN config, ### + ### DO NOT edit it by hand. ### + +COMPILE_FLAGS["OS_INCLUDES"] = [] +AllowCompilerWarnings() + +DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1" +DEFINES["RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY"] = True +DEFINES["RTC_ENABLE_VP9"] = True +DEFINES["USE_AURA"] = "1" +DEFINES["USE_GLIB"] = "1" +DEFINES["USE_NSS_CERTS"] = "1" +DEFINES["USE_OZONE"] = "1" +DEFINES["USE_UDEV"] = True +DEFINES["WEBRTC_ENABLE_AVX2"] = True +DEFINES["WEBRTC_ENABLE_PROTOBUF"] = "0" +DEFINES["WEBRTC_LIBRARY_IMPL"] = True +DEFINES["WEBRTC_LINUX"] = True +DEFINES["WEBRTC_MOZILLA_BUILD"] = True +DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0" +DEFINES["WEBRTC_POSIX"] = True +DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0" +DEFINES["_FILE_OFFSET_BITS"] = "64" +DEFINES["_GNU_SOURCE"] = True +DEFINES["_LARGEFILE64_SOURCE"] = True +DEFINES["_LARGEFILE_SOURCE"] = True +DEFINES["__STDC_CONSTANT_MACROS"] = True +DEFINES["__STDC_FORMAT_MACROS"] = True + +FINAL_LIBRARY = "webrtc" + + +LOCAL_INCLUDES += [ + "!/ipc/ipdl/_ipdlheaders", + "!/third_party/libwebrtc/gen", + "/ipc/chromium/src", + "/third_party/gbm/gbm/", + "/third_party/libwebrtc/", + "/third_party/libwebrtc/third_party/abseil-cpp/", + "/tools/profiler/public" +] + +if not CONFIG["MOZ_DEBUG"]: + + DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0" + DEFINES["NDEBUG"] = True + DEFINES["NVALGRIND"] = True + +if CONFIG["MOZ_DEBUG"] == "1": + + DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "1" + DEFINES["_DEBUG"] = True + +if CONFIG["CPU_ARCH"] == "aarch64": + + DEFINES["WEBRTC_ARCH_ARM64"] = True + DEFINES["WEBRTC_HAS_NEON"] = True + +if CONFIG["CPU_ARCH"] == "arm": + + DEFINES["WEBRTC_ARCH_ARM"] = True + DEFINES["WEBRTC_ARCH_ARM_V7"] = True + DEFINES["WEBRTC_HAS_NEON"] = True + +if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux": + + DEFINES["USE_X11"] = "1" + +Library("gbm_gn") diff --git a/third_party/libwebrtc/third_party/libepoxy/libepoxy_gn/moz.build b/third_party/libwebrtc/third_party/libepoxy/libepoxy_gn/moz.build new file mode 100644 index 000000000000..74613b4ac3cb --- /dev/null +++ b/third_party/libwebrtc/third_party/libepoxy/libepoxy_gn/moz.build @@ -0,0 +1,75 @@ +# 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/. + + + ### This moz.build was AUTOMATICALLY GENERATED from a GN config, ### + ### DO NOT edit it by hand. ### + +COMPILE_FLAGS["OS_INCLUDES"] = [] +AllowCompilerWarnings() + +DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1" +DEFINES["RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY"] = True +DEFINES["RTC_ENABLE_VP9"] = True +DEFINES["USE_AURA"] = "1" +DEFINES["USE_GLIB"] = "1" +DEFINES["USE_NSS_CERTS"] = "1" +DEFINES["USE_OZONE"] = "1" +DEFINES["USE_UDEV"] = True +DEFINES["WEBRTC_ENABLE_AVX2"] = True +DEFINES["WEBRTC_ENABLE_PROTOBUF"] = "0" +DEFINES["WEBRTC_LIBRARY_IMPL"] = True +DEFINES["WEBRTC_LINUX"] = True +DEFINES["WEBRTC_MOZILLA_BUILD"] = True +DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0" +DEFINES["WEBRTC_POSIX"] = True +DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0" +DEFINES["_FILE_OFFSET_BITS"] = "64" +DEFINES["_GNU_SOURCE"] = True +DEFINES["_LARGEFILE64_SOURCE"] = True +DEFINES["_LARGEFILE_SOURCE"] = True +DEFINES["__STDC_CONSTANT_MACROS"] = True +DEFINES["__STDC_FORMAT_MACROS"] = True + +FINAL_LIBRARY = "webrtc" + + +LOCAL_INCLUDES += [ + "!/ipc/ipdl/_ipdlheaders", + "!/third_party/libwebrtc/gen", + "/gfx/angle/checkout/include/", + "/ipc/chromium/src", + "/third_party/libepoxy/libepoxy/include/", + "/third_party/libwebrtc/", + "/third_party/libwebrtc/third_party/abseil-cpp/", + "/tools/profiler/public" +] + +if not CONFIG["MOZ_DEBUG"]: + + DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0" + DEFINES["NDEBUG"] = True + DEFINES["NVALGRIND"] = True + +if CONFIG["MOZ_DEBUG"] == "1": + + DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "1" + DEFINES["_DEBUG"] = True + +if CONFIG["CPU_ARCH"] == "aarch64": + + DEFINES["WEBRTC_ARCH_ARM64"] = True + DEFINES["WEBRTC_HAS_NEON"] = True + +if CONFIG["CPU_ARCH"] == "arm": + + DEFINES["WEBRTC_ARCH_ARM"] = True + DEFINES["WEBRTC_ARCH_ARM_V7"] = True + DEFINES["WEBRTC_HAS_NEON"] = True + +if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux": + + DEFINES["USE_X11"] = "1" + +Library("epoxy_gn") diff --git a/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build b/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build new file mode 100644 index 000000000000..4ad14fff6dcb --- /dev/null +++ b/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build @@ -0,0 +1,75 @@ +# 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/. + + + ### This moz.build was AUTOMATICALLY GENERATED from a GN config, ### + ### DO NOT edit it by hand. ### + +COMPILE_FLAGS["OS_INCLUDES"] = [] +AllowCompilerWarnings() + +DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1" +DEFINES["RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY"] = True +DEFINES["RTC_ENABLE_VP9"] = True +DEFINES["USE_AURA"] = "1" +DEFINES["USE_GLIB"] = "1" +DEFINES["USE_NSS_CERTS"] = "1" +DEFINES["USE_OZONE"] = "1" +DEFINES["USE_UDEV"] = True +DEFINES["WEBRTC_ENABLE_AVX2"] = True +DEFINES["WEBRTC_ENABLE_PROTOBUF"] = "0" +DEFINES["WEBRTC_LIBRARY_IMPL"] = True +DEFINES["WEBRTC_LINUX"] = True +DEFINES["WEBRTC_MOZILLA_BUILD"] = True +DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0" +DEFINES["WEBRTC_POSIX"] = True +DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0" +DEFINES["WEBRTC_USE_PIPEWIRE"] = True +DEFINES["_FILE_OFFSET_BITS"] = "64" +DEFINES["_GNU_SOURCE"] = True +DEFINES["_LARGEFILE64_SOURCE"] = True +DEFINES["_LARGEFILE_SOURCE"] = True +DEFINES["__STDC_CONSTANT_MACROS"] = True +DEFINES["__STDC_FORMAT_MACROS"] = True + +FINAL_LIBRARY = "webrtc" + + +LOCAL_INCLUDES += [ + "!/ipc/ipdl/_ipdlheaders", + "!/third_party/libwebrtc/gen", + "/ipc/chromium/src", + "/third_party/libwebrtc/", + "/third_party/libwebrtc/third_party/abseil-cpp/", + "/third_party/pipewire/", + "/tools/profiler/public" +] + +if not CONFIG["MOZ_DEBUG"]: + + DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0" + DEFINES["NDEBUG"] = True + DEFINES["NVALGRIND"] = True + +if CONFIG["MOZ_DEBUG"] == "1": + + DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "1" + DEFINES["_DEBUG"] = True + +if CONFIG["CPU_ARCH"] == "aarch64": + + DEFINES["WEBRTC_ARCH_ARM64"] = True + DEFINES["WEBRTC_HAS_NEON"] = True + +if CONFIG["CPU_ARCH"] == "arm": + + DEFINES["WEBRTC_ARCH_ARM"] = True + DEFINES["WEBRTC_ARCH_ARM_V7"] = True + DEFINES["WEBRTC_HAS_NEON"] = True + +if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux": + + DEFINES["USE_X11"] = "1" + +Library("pipewire_gn")