Expose less targets in webrtc/rtc_tools in Chromium builds.

This should solve recent linking problems with frame_editor and also speed
up the Chromium build a little.

BUG=None
NOTRY=True

Review-Url: https://codereview.webrtc.org/3006093002
Cr-Original-Commit-Position: refs/heads/master@{#19677}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 6af0cbf4b02da1faf01011da81d97e1e0593b2ca
diff --git a/rtc_tools/BUILD.gn b/rtc_tools/BUILD.gn
index efe82d1..4821624 100644
--- a/rtc_tools/BUILD.gn
+++ b/rtc_tools/BUILD.gn
@@ -16,15 +16,20 @@
   public_deps = [
     ":command_line_parser",
     ":frame_analyzer",
-    ":frame_editor",
-    ":psnr_ssim_analyzer",
-    ":rgba_to_i420_converter",
+    ":video_quality_analysis",
   ]
-  if (rtc_include_internal_audio_device) {
-    public_deps += [ ":force_mic_volume_max" ]
-  }
-  if (rtc_enable_protobuf) {
-    public_deps += [ ":chart_proto" ]
+  if (!build_with_chromium) {
+    public_deps += [
+      ":frame_editor",
+      ":psnr_ssim_analyzer",
+      ":rgba_to_i420_converter",
+    ]
+    if (rtc_include_internal_audio_device) {
+      public_deps += [ ":force_mic_volume_max" ]
+    }
+    if (rtc_enable_protobuf) {
+      public_deps += [ ":chart_proto" ]
+    }
   }
 
   if (rtc_include_tests) {
@@ -59,9 +64,6 @@
     "frame_analyzer/video_quality_analysis.h",
   ]
 
-  deps = [
-    "../common_video",
-  ]
   public_deps = [
     "../common_video",
   ]
@@ -79,152 +81,156 @@
   ]
 }
 
-rtc_executable("psnr_ssim_analyzer") {
-  sources = [
-    "psnr_ssim_analyzer/psnr_ssim_analyzer.cc",
-  ]
-
-  deps = [
-    ":command_line_parser",
-    ":video_quality_analysis",
-    "//build/win:default_exe_manifest",
-  ]
-}
-
-rtc_static_library("reference_less_video_analysis_lib") {
-  sources = [
-    "frame_analyzer/reference_less_video_analysis_lib.cc",
-    "frame_analyzer/reference_less_video_analysis_lib.h",
-  ]
-
-  deps = [
-    ":video_quality_analysis",
-  ]
-}
-
-rtc_executable("reference_less_video_analysis") {
-  sources = [
-    "frame_analyzer/reference_less_video_analysis.cc",
-  ]
-
-  deps = [
-    ":command_line_parser",
-    ":reference_less_video_analysis_lib",
-    "//build/win:default_exe_manifest",
-  ]
-}
-
-rtc_executable("rgba_to_i420_converter") {
-  sources = [
-    "converter/converter.cc",
-    "converter/converter.h",
-    "converter/rgba_to_i420_converter.cc",
-  ]
-
-  deps = [
-    ":command_line_parser",
-    "../common_video",
-    "//build/win:default_exe_manifest",
-  ]
-}
-
-rtc_static_library("frame_editing_lib") {
-  sources = [
-    "frame_editing/frame_editing_lib.cc",
-    "frame_editing/frame_editing_lib.h",
-  ]
-
-  # TODO(jschuh): Bug 1348: fix this warning.
-  configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
-
-  if (!build_with_chromium && is_clang) {
-    # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
-    suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
-  }
-
-  deps = [
-    "..:webrtc_common",
-    "../common_video",
-  ]
-}
-
-rtc_executable("frame_editor") {
-  sources = [
-    "frame_editing/frame_editing.cc",
-  ]
-
-  deps = [
-    ":command_line_parser",
-    ":frame_editing_lib",
-    "//build/win:default_exe_manifest",
-  ]
-}
-
-# It doesn't make sense to build this tool without the ADM enabled.
-if (rtc_include_internal_audio_device) {
-  rtc_executable("force_mic_volume_max") {
+# Only expose the targets needed by Chromium (e.g. frame_analyzer) to avoid
+# building a lot of redundant code as part of Chromium builds.
+if (!build_with_chromium) {
+  rtc_executable("psnr_ssim_analyzer") {
     sources = [
-      "force_mic_volume_max/force_mic_volume_max.cc",
+      "psnr_ssim_analyzer/psnr_ssim_analyzer.cc",
     ]
 
-    if (!build_with_chromium && is_clang) {
-      # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
-      suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
-    }
-
     deps = [
-      "../modules/audio_device",
-      "../system_wrappers:system_wrappers_default",
+      ":command_line_parser",
+      ":video_quality_analysis",
       "//build/win:default_exe_manifest",
     ]
   }
-}
 
-if (rtc_enable_protobuf) {
-  proto_library("chart_proto") {
+  rtc_static_library("reference_less_video_analysis_lib") {
     sources = [
-      "event_log_visualizer/chart.proto",
+      "frame_analyzer/reference_less_video_analysis_lib.cc",
+      "frame_analyzer/reference_less_video_analysis_lib.h",
     ]
-    proto_out_dir = "webrtc/rtc_tools/event_log_visualizer"
+
+    deps = [
+      ":video_quality_analysis",
+    ]
   }
 
-  rtc_static_library("event_log_visualizer_utils") {
+  rtc_executable("reference_less_video_analysis") {
     sources = [
-      "event_log_visualizer/analyzer.cc",
-      "event_log_visualizer/analyzer.h",
-      "event_log_visualizer/plot_base.cc",
-      "event_log_visualizer/plot_base.h",
-      "event_log_visualizer/plot_protobuf.cc",
-      "event_log_visualizer/plot_protobuf.h",
-      "event_log_visualizer/plot_python.cc",
-      "event_log_visualizer/plot_python.h",
+      "frame_analyzer/reference_less_video_analysis.cc",
     ]
+
+    deps = [
+      ":command_line_parser",
+      ":reference_less_video_analysis_lib",
+      "//build/win:default_exe_manifest",
+    ]
+  }
+
+  rtc_executable("rgba_to_i420_converter") {
+    sources = [
+      "converter/converter.cc",
+      "converter/converter.h",
+      "converter/rgba_to_i420_converter.cc",
+    ]
+
+    deps = [
+      ":command_line_parser",
+      "../common_video",
+      "//build/win:default_exe_manifest",
+    ]
+  }
+
+  rtc_static_library("frame_editing_lib") {
+    sources = [
+      "frame_editing/frame_editing_lib.cc",
+      "frame_editing/frame_editing_lib.h",
+    ]
+
+    # TODO(jschuh): Bug 1348: fix this warning.
+    configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
+
     if (!build_with_chromium && is_clang) {
       # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
       suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
     }
-    defines = [ "ENABLE_RTC_EVENT_LOG" ]
-    deps = [
-      "../call:call_interfaces",
-      "../call:video_stream_api",
-      "../logging:rtc_event_log_impl",
-      "../logging:rtc_event_log_parser",
-      "../modules:module_api",
-      "../modules/audio_coding:ana_debug_dump_proto",
-      "../modules/audio_coding:neteq_tools",
-      "../rtc_base:rtc_base_approved",
 
-      # TODO(kwiberg): Remove this dependency.
-      "../api/audio_codecs:audio_codecs_api",
-      "../modules/congestion_controller",
-      "../modules/rtp_rtcp",
-      "../system_wrappers:system_wrappers_default",
-      "//build/config:exe_and_shlib_deps",
+    deps = [
+      "..:webrtc_common",
+      "../common_video",
     ]
-    public_deps = [
-      ":chart_proto",
-      "../logging:rtc_event_log_parser",
+  }
+
+  rtc_executable("frame_editor") {
+    sources = [
+      "frame_editing/frame_editing.cc",
     ]
+
+    deps = [
+      ":command_line_parser",
+      ":frame_editing_lib",
+      "//build/win:default_exe_manifest",
+    ]
+  }
+
+  # It doesn't make sense to build this tool without the ADM enabled.
+  if (rtc_include_internal_audio_device) {
+    rtc_executable("force_mic_volume_max") {
+      sources = [
+        "force_mic_volume_max/force_mic_volume_max.cc",
+      ]
+
+      if (!build_with_chromium && is_clang) {
+        # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
+        suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
+      }
+
+      deps = [
+        "../modules/audio_device",
+        "../system_wrappers:system_wrappers_default",
+        "//build/win:default_exe_manifest",
+      ]
+    }
+  }
+
+  if (rtc_enable_protobuf) {
+    proto_library("chart_proto") {
+      sources = [
+        "event_log_visualizer/chart.proto",
+      ]
+      proto_out_dir = "webrtc/rtc_tools/event_log_visualizer"
+    }
+
+    rtc_static_library("event_log_visualizer_utils") {
+      sources = [
+        "event_log_visualizer/analyzer.cc",
+        "event_log_visualizer/analyzer.h",
+        "event_log_visualizer/plot_base.cc",
+        "event_log_visualizer/plot_base.h",
+        "event_log_visualizer/plot_protobuf.cc",
+        "event_log_visualizer/plot_protobuf.h",
+        "event_log_visualizer/plot_python.cc",
+        "event_log_visualizer/plot_python.h",
+      ]
+      if (!build_with_chromium && is_clang) {
+        # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
+        suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
+      }
+      defines = [ "ENABLE_RTC_EVENT_LOG" ]
+      deps = [
+        "../call:call_interfaces",
+        "../call:video_stream_api",
+        "../logging:rtc_event_log_impl",
+        "../logging:rtc_event_log_parser",
+        "../modules:module_api",
+        "../modules/audio_coding:ana_debug_dump_proto",
+        "../modules/audio_coding:neteq_tools",
+        "../rtc_base:rtc_base_approved",
+
+        # TODO(kwiberg): Remove this dependency.
+        "../api/audio_codecs:audio_codecs_api",
+        "../modules/congestion_controller",
+        "../modules/rtp_rtcp",
+        "../system_wrappers:system_wrappers_default",
+        "//build/config:exe_and_shlib_deps",
+      ]
+      public_deps = [
+        ":chart_proto",
+        "../logging:rtc_event_log_parser",
+      ]
+    }
   }
 }