commit da40b474fba2247ffc07696a2c565d830e900c9c Author: Christoph Moench-Tegeder enable pipewire on bsd diff --git third_party/chromium/build/config/BUILDCONFIG.gn third_party/chromium/build/config/BUILDCONFIG.gn index 889bdb92354c..ccda96d998c5 100644 --- third_party/chromium/build/config/BUILDCONFIG.gn +++ third_party/chromium/build/config/BUILDCONFIG.gn @@ -132,6 +132,7 @@ declare_args() { # Set to true when compiling with the Clang compiler. is_clang = current_os != "linux" || current_os == "openbsd" || + current_os == "freebsd" || (current_cpu != "s390x" && current_cpu != "s390" && current_cpu != "ppc64" && current_cpu != "ppc" && current_cpu != "mips" && current_cpu != "mips64" && @@ -184,7 +185,7 @@ if (host_toolchain == "") { # TODO(dpranke): Add some sort of assert here that verifies that # no toolchain omitted host_toolchain from its toolchain_args(). - if (host_os == "linux" || host_os == "openbsd") { + if (host_os == "linux" || host_os == "openbsd" || host_os == "freebsd") { if (target_os != "linux") { host_toolchain = "//chromium/build/toolchain/linux:clang_$host_cpu" } else if (is_clang) { @@ -222,7 +223,7 @@ if (target_os == "android") { assert(host_os == "linux" || host_os == "mac", "Android builds are only supported on Linux and Mac hosts.") _default_toolchain = "//chromium/build/toolchain/android:android_clang_$target_cpu" -} else if (target_os == "chromeos" || target_os == "linux" || target_os == "openbsd") { +} else if (target_os == "chromeos" || target_os == "linux" || target_os == "openbsd" || target_os == "freebsd") { # See comments in build/toolchain/cros/BUILD.gn about board compiles. if (is_clang) { _default_toolchain = "//chromium/build/toolchain/linux:clang_$target_cpu" @@ -288,7 +289,7 @@ is_chromeos = current_os == "chromeos" is_fuchsia = current_os == "fuchsia" is_ios = current_os == "ios" is_linux = current_os == "linux" -is_bsd = current_os == "openbsd" +is_bsd = current_os == "openbsd" || current_os == "freebsd" is_mac = current_os == "mac" is_nacl = current_os == "nacl" is_win = current_os == "win" || current_os == "winuwp" diff --git third_party/libwebrtc/BUILD.gn third_party/libwebrtc/BUILD.gn index 397df7b27b24..8a587feed6b9 100644 --- third_party/libwebrtc/BUILD.gn +++ third_party/libwebrtc/BUILD.gn @@ -107,7 +107,7 @@ if (!build_with_chromium && !build_with_mozilla) { "tools_webrtc/perf:webrtc_dashboard_upload", ] } - if ((is_linux || is_chromeos) && rtc_use_pipewire) { + if ((is_linux || is_chromeos || is_bsd) && rtc_use_pipewire) { deps += [ "modules/desktop_capture:shared_screencast_stream_test" ] } } diff --git third_party/libwebrtc/modules/desktop_capture/BUILD.gn third_party/libwebrtc/modules/desktop_capture/BUILD.gn index de00f688871c..e32c19d38c8d 100644 --- third_party/libwebrtc/modules/desktop_capture/BUILD.gn +++ third_party/libwebrtc/modules/desktop_capture/BUILD.gn @@ -74,7 +74,7 @@ if (rtc_include_tests) { "window_finder_unittest.cc", ] - if ((is_linux || is_chromeos) && rtc_use_pipewire) { + if ((is_linux || is_chromeos || is_bsd) && rtc_use_pipewire) { configs += [ "../portal:gio" ] } @@ -86,7 +86,7 @@ if (rtc_include_tests) { } } - if ((is_linux || is_chromeos) && rtc_use_pipewire) { + if ((is_linux || is_chromeos || is_bsd) && rtc_use_pipewire) { rtc_test("shared_screencast_stream_test") { testonly = true @@ -145,7 +145,7 @@ if (rtc_include_tests) { "test_utils_unittest.cc", ] - if ((is_linux || is_chromeos) && rtc_use_pipewire) { + if ((is_linux || is_chromeos || is_bsd) && rtc_use_pipewire) { configs += [ "../portal:gio" ] } @@ -267,7 +267,7 @@ if (rtc_include_tests) { } # TODO(bugs.webrtc.org/14187): remove when all users are gone -if ((is_linux || is_chromeos) && rtc_use_pipewire) { +if ((is_linux || is_chromeos || is_bsd) && rtc_use_pipewire) { config("pipewire_config") { configs = [ "../portal:pipewire_config" ] } @@ -330,7 +330,7 @@ rtc_library("desktop_capture") { "window_finder.cc", "window_finder.h", ] - if (is_linux && !is_castos && rtc_use_pipewire) { + if ((is_linux || is_bsd) && !is_castos && rtc_use_pipewire) { sources += [ "desktop_capture_metadata.h" ] } if (is_mac) { diff --git third_party/libwebrtc/modules/portal/BUILD.gn third_party/libwebrtc/modules/portal/BUILD.gn index 6828388b31af..7e1857d861c5 100644 --- third_party/libwebrtc/modules/portal/BUILD.gn +++ third_party/libwebrtc/modules/portal/BUILD.gn @@ -10,7 +10,7 @@ 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 ((is_linux || is_chromeos || is_bsd) && rtc_use_pipewire) { if (!build_with_mozilla) { pkg_config("gio") { packages = [ diff --git third_party/libwebrtc/webrtc.gni third_party/libwebrtc/webrtc.gni index 58b450cbb16e..00b9ca49c71f 100644 --- third_party/libwebrtc/webrtc.gni +++ third_party/libwebrtc/webrtc.gni @@ -154,7 +154,7 @@ declare_args() { # By default it's only enabled on desktop Linux (excludes ChromeOS) and # only when using the sysroot as PipeWire is not available in older and # supported Ubuntu and Debian distributions. - rtc_use_pipewire = is_linux && use_sysroot + rtc_use_pipewire = (is_linux || is_bsd) && use_sysroot # Set this to link PipeWire and required libraries directly instead of using the dlopen. rtc_link_pipewire = false