Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/third_party/libwebrtc/modules/portal/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  BUILD.gn   Sprache: unbekannt

 
# Copyright (c) 2022 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.  All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.

import("//chromium/build/config/linux/pkg_config.gni")
import("//tools/generate_stubs/rules.gni")
import("../../webrtc.gni")

if ((is_linux || is_chromeos) && rtc_use_pipewire) {
if (!build_with_mozilla) {
  pkg_config("gio") {
    packages = [
      "gio-2.0",
      "gio-unix-2.0",
    ]
  }

  pkg_config("pipewire") {
    packages = [ "libpipewire-0.3" ]
    if (!rtc_link_pipewire) {
      ignore_libs = true
    }
  }

  pkg_config("gbm") {
    packages = [ "gbm" ]
  }
  pkg_config("egl") {
    packages = [ "egl" ]
  }
  pkg_config("epoxy") {
    packages = [ "epoxy" ]
    ignore_libs = true
  }
  pkg_config("libdrm") {
    packages = [ "libdrm" ]
  }

  if (!rtc_link_pipewire) {
    # When libpipewire is not directly linked, use stubs to allow for dlopening of
    # the binary.
    generate_stubs("pipewire_stubs") {
      configs = [
        "../../:common_config",
        ":pipewire",
      ]
      deps = [ "../../rtc_base:logging" ]
      extra_header = "pipewire_stub_header.fragment"
      logging_function = "RTC_LOG(LS_VERBOSE)"
      logging_include = "rtc_base/logging.h"
      output_name = "pipewire_stubs"
      path_from_source = "modules/portal"
      sigs = [ "pipewire.sigs" ]
      if (!build_with_chromium) {
        macro_include = "rtc_base/system/no_cfi_icall.h"
        macro_deps = [ "../../rtc_base/system:no_cfi_icall" ]
      }
    }
  }

  config("pipewire_base") {
    configs = [
      ":gio",
      ":pipewire",
    ]
  }

  config("pipewire_all") {
    configs = [
      ":pipewire_base",
      ":gbm",
      ":egl",
      ":epoxy",
      ":libdrm",
    ]
  }

  config("pipewire_config") {
    defines = [ "WEBRTC_USE_PIPEWIRE" ]

    # Chromecast build config overrides `WEBRTC_USE_PIPEWIRE` even when
    # `rtc_use_pipewire` is not set, which causes pipewire_config to not be
    # included in targets. More details in: webrtc:13898
    if (is_linux && !is_castos) {
      defines += [ "WEBRTC_USE_GIO" ]
    }
  }
} else {
  config("pipewire_all") {
  }
  config("pipewire_config") {
  }
}

  rtc_library("portal") {
    sources = [
      "pipewire_utils.cc",
      "pipewire_utils.h",
      "portal_request_response.h",
      "scoped_glib.cc",
      "scoped_glib.h",
      "xdg_desktop_portal_utils.cc",
      "xdg_desktop_portal_utils.h",
      "xdg_session_details.h",
    ]

    configs += [
      ":gio",
      ":pipewire",
      ":pipewire_config",
    ]

    deps = [
      "../../rtc_base:checks",
      "../../rtc_base:logging",
      "../../rtc_base:sanitizer",
      "../../rtc_base/system:rtc_export",
      "//third_party/abseil-cpp/absl/strings:string_view",
    ]

    if (!rtc_link_pipewire) {
      defines = [ "WEBRTC_DLOPEN_PIPEWIRE" ]

      deps += [ ":pipewire_stubs" ]
    }

    if (build_with_mozilla) {
      configs -= [
        ":gio",
        ":pipewire",
        ":pipewire_config",
      ]
      deps -= [ ":pipewire_stubs" ]
      defines -= [ "WEBRTC_DLOPEN_PIPEWIRE" ]
      public_deps = [
        "../../third_party/pipewire",
        "../../third_party/drm",
        "../../third_party/gbm",
        "../../third_party/libepoxy"
      ]
    }
  }
}


[ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet)  ]