From 6af0cbf4b02da1faf01011da81d97e1e0593b2ca Mon Sep 17 00:00:00 2001 From: kjellander Date: Mon, 4 Sep 2017 23:42:45 -0700 Subject: [PATCH] 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-Commit-Position: refs/heads/master@{#19677} --- webrtc/rtc_tools/BUILD.gn | 278 +++++++++++++++++++------------------- 1 file changed, 142 insertions(+), 136 deletions(-) diff --git a/webrtc/rtc_tools/BUILD.gn b/webrtc/rtc_tools/BUILD.gn index efe82d1001..4821624087 100644 --- a/webrtc/rtc_tools/BUILD.gn +++ b/webrtc/rtc_tools/BUILD.gn @@ -16,15 +16,20 @@ group("rtc_tools") { 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 @@ rtc_static_library("video_quality_analysis") { "frame_analyzer/video_quality_analysis.h", ] - deps = [ - "../common_video", - ] public_deps = [ "../common_video", ] @@ -79,152 +81,156 @@ rtc_executable("frame_analyzer") { ] } -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", + ] + + deps = [ + ":video_quality_analysis", ] - proto_out_dir = "webrtc/rtc_tools/event_log_visualizer" } - 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", + ] + } } }