From 366f205d9b8eeb11b67a5bce986dcbe489e09e91 Mon Sep 17 00:00:00 2001 From: Danil Chapovalov Date: Thu, 10 Oct 2024 10:46:43 +0200 Subject: [PATCH] Change rtc_executable template to depend on absl_full when built with chromium This would allow to remove abseil visibility exceptions for WebRTC targets built with chromium Bug: None Change-Id: I63c1052f3d5b626d51bfa7209445c317bea5f970 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/365160 Commit-Queue: Danil Chapovalov Reviewed-by: Mirko Bonadei Cr-Commit-Position: refs/heads/main@{#43215} --- webrtc.gni | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/webrtc.gni b/webrtc.gni index 66ed8434ff..fe5e6a0d71 100644 --- a/webrtc.gni +++ b/webrtc.gni @@ -957,6 +957,24 @@ template("rtc_executable") { "//build/win:default_exe_manifest", ] } + + # Convert abseil dependencies to //third_party/abseil-cpp:absl_full when + # build_with_chromium=true so that webrtc targets won't need exceptions to + # depend on individual absl targets. + # Note that //third_party/abseil-cpp:absl_full build target includes flags, + # but //third_party/abseil-cpp:absl target - doesn't. That allows webrtc + # executables, but not libraries to use absl flags. + if (build_with_chromium && defined(deps)) { + absl_dependencies = + filter_labels_include(deps, [ "//third_party/abseil-cpp/*" ]) + if (absl_dependencies != []) { + filtered_deps = + filter_labels_exclude(deps, [ "//third_party/abseil-cpp/*" ]) + deps = [] + deps = filtered_deps + deps += [ "//third_party/abseil-cpp:absl_full" ] + } + } } }