blob: b94a10fab580eed04a6e5000b3f3530316f63d10 [file] [log] [blame]
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +00001# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS. All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
tereliusb246a292016-08-23 18:15:25 -07009import("//third_party/protobuf/proto_library.gni")
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +000010import("../build/webrtc.gni")
11
kjellanderb62dbbe2016-09-23 00:38:52 -070012group("tools") {
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +000013 deps = [
14 ":command_line_parser",
15 ]
kjellandera8119682016-06-06 02:00:18 -070016
17 if (!build_with_chromium) {
18 # TODO(kjellander): Enable these when webrtc:5970 is fixed.
19 deps += [
20 ":frame_analyzer",
21 ":rgba_to_i420_converter",
22 ]
23 }
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +000024}
25
kjellanderb62dbbe2016-09-23 00:38:52 -070026rtc_static_library("command_line_parser") {
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +000027 sources = [
Henrik Kjellanderfa16dda2015-04-01 22:53:56 +020028 "simple_command_line_parser.cc",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020029 "simple_command_line_parser.h",
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +000030 ]
Henrik Kjellander67bcb602015-10-07 08:42:52 +020031 deps = [
kjellander988d31e2016-02-05 00:23:50 -080032 "../base:gtest_prod",
Henrik Kjellander67bcb602015-10-07 08:42:52 +020033 ]
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +000034}
35
kjellanderb62dbbe2016-09-23 00:38:52 -070036rtc_static_library("video_quality_analysis") {
Henrik Kjellander67bcb602015-10-07 08:42:52 +020037 sources = [
38 "frame_analyzer/video_quality_analysis.cc",
39 "frame_analyzer/video_quality_analysis.h",
40 ]
kjellanderbac04122016-06-02 02:18:48 -070041
Henrik Kjellander67bcb602015-10-07 08:42:52 +020042 deps = [
43 "../common_video",
44 ]
45 public_deps = [
46 "../common_video",
47 ]
48}
49
ehmaldonado38a21322016-09-02 04:10:34 -070050rtc_executable("frame_analyzer") {
Henrik Kjellander67bcb602015-10-07 08:42:52 +020051 sources = [
52 "frame_analyzer/frame_analyzer.cc",
53 ]
kjellanderbac04122016-06-02 02:18:48 -070054
kjellanderbac04122016-06-02 02:18:48 -070055 deps = [
56 ":command_line_parser",
57 ":video_quality_analysis",
58 "//build/win:default_exe_manifest",
59 ]
60}
61
ehmaldonado38a21322016-09-02 04:10:34 -070062rtc_executable("psnr_ssim_analyzer") {
kjellanderbac04122016-06-02 02:18:48 -070063 sources = [
64 "psnr_ssim_analyzer/psnr_ssim_analyzer.cc",
65 ]
66
Henrik Kjellander67bcb602015-10-07 08:42:52 +020067 deps = [
68 ":command_line_parser",
69 ":video_quality_analysis",
brucedawson84583e02016-04-28 00:21:08 -070070 "//build/win:default_exe_manifest",
Henrik Kjellander67bcb602015-10-07 08:42:52 +020071 ]
72}
73
ehmaldonado38a21322016-09-02 04:10:34 -070074rtc_executable("rgba_to_i420_converter") {
Henrik Kjellander67bcb602015-10-07 08:42:52 +020075 sources = [
76 "converter/converter.cc",
77 "converter/converter.h",
78 "converter/rgba_to_i420_converter.cc",
79 ]
kjellanderbac04122016-06-02 02:18:48 -070080
Henrik Kjellander67bcb602015-10-07 08:42:52 +020081 deps = [
82 ":command_line_parser",
83 "../common_video",
brucedawson84583e02016-04-28 00:21:08 -070084 "//build/win:default_exe_manifest",
Henrik Kjellander67bcb602015-10-07 08:42:52 +020085 ]
86}
87
kjellanderb62dbbe2016-09-23 00:38:52 -070088rtc_static_library("frame_editing_lib") {
kjellanderbac04122016-06-02 02:18:48 -070089 sources = [
90 "frame_editing/frame_editing_lib.cc",
91 "frame_editing/frame_editing_lib.h",
92 ]
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +000093
kjellanderbac04122016-06-02 02:18:48 -070094 # TODO(jschuh): Bug 1348: fix this warning.
95 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +000096
kjellandere40a7ee2016-10-16 23:56:12 -070097 if (!build_with_chromium && is_clang) {
98 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
ehmaldonado38a21322016-09-02 04:10:34 -070099 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
kjellanderbac04122016-06-02 02:18:48 -0700100 }
kjellander@webrtc.org3037bc32014-09-30 19:07:58 +0000101
kjellanderbac04122016-06-02 02:18:48 -0700102 deps = [
103 "../common_video",
104 ]
105}
106
ehmaldonado38a21322016-09-02 04:10:34 -0700107rtc_executable("frame_editor") {
kjellanderbac04122016-06-02 02:18:48 -0700108 sources = [
109 "frame_editing/frame_editing.cc",
110 ]
111
kjellanderbac04122016-06-02 02:18:48 -0700112 deps = [
113 ":command_line_parser",
114 ":frame_editing_lib",
115 "//build/win:default_exe_manifest",
116 ]
117}
118
solenbergfc433e62016-09-09 11:04:53 -0700119# It doesn't make sense to build this tool without the ADM enabled.
120if (rtc_include_internal_audio_device) {
121 rtc_executable("force_mic_volume_max") {
122 sources = [
123 "force_mic_volume_max/force_mic_volume_max.cc",
124 ]
kjellanderbac04122016-06-02 02:18:48 -0700125
kjellandere40a7ee2016-10-16 23:56:12 -0700126 if (!build_with_chromium && is_clang) {
127 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
solenbergfc433e62016-09-09 11:04:53 -0700128 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
129 }
130
131 deps = [
132 "../modules/audio_device:audio_device",
133 "../system_wrappers:system_wrappers_default",
134 "//build/win:default_exe_manifest",
135 ]
kjellanderbac04122016-06-02 02:18:48 -0700136 }
kjellanderbac04122016-06-02 02:18:48 -0700137}
138
skvlad185ba292016-08-23 13:01:27 -0700139if (rtc_enable_protobuf) {
skvladf581eb72016-09-07 11:15:37 -0700140 proto_library("chart_proto") {
tereliusb246a292016-08-23 18:15:25 -0700141 sources = [
skvladf581eb72016-09-07 11:15:37 -0700142 "event_log_visualizer/chart.proto",
tereliusb246a292016-08-23 18:15:25 -0700143 ]
144 proto_out_dir = "webrtc/tools/event_log_visualizer"
145 }
146
kjellanderb62dbbe2016-09-23 00:38:52 -0700147 rtc_static_library("event_log_visualizer_utils") {
skvlad185ba292016-08-23 13:01:27 -0700148 sources = [
149 "event_log_visualizer/analyzer.cc",
150 "event_log_visualizer/analyzer.h",
151 "event_log_visualizer/plot_base.cc",
152 "event_log_visualizer/plot_base.h",
tereliusb246a292016-08-23 18:15:25 -0700153 "event_log_visualizer/plot_protobuf.cc",
154 "event_log_visualizer/plot_protobuf.h",
skvlad185ba292016-08-23 13:01:27 -0700155 "event_log_visualizer/plot_python.cc",
156 "event_log_visualizer/plot_python.h",
157 ]
kjellandere40a7ee2016-10-16 23:56:12 -0700158 if (!build_with_chromium && is_clang) {
159 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
ehmaldonado38a21322016-09-02 04:10:34 -0700160 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
skvlad185ba292016-08-23 13:01:27 -0700161 }
162 defines = [ "ENABLE_RTC_EVENT_LOG" ]
163 deps = [
skvladcc91d282016-10-03 18:31:22 -0700164 "../logging:rtc_event_log_impl",
165 "../logging:rtc_event_log_parser",
skvlad185ba292016-08-23 13:01:27 -0700166 "../modules/congestion_controller:congestion_controller",
167 "../modules/rtp_rtcp:rtp_rtcp",
168 "../system_wrappers:system_wrappers_default",
169 "//build/config/sanitizers:deps",
170 ]
171 public_deps = [
skvladf581eb72016-09-07 11:15:37 -0700172 ":chart_proto",
skvladcc91d282016-10-03 18:31:22 -0700173 "../logging:rtc_event_log_parser",
skvlad185ba292016-08-23 13:01:27 -0700174 ]
175 }
176}
177
kjellander@webrtc.orgdc0dbad2016-06-02 13:29:07 +0200178# Exclude tools depending on gflags since that's not available in Chromium.
kjellander@webrtc.orgaff499c2016-06-06 23:04:31 +0200179if (rtc_include_tests) {
terelius54ce6802016-07-13 06:44:41 -0700180 if (rtc_enable_protobuf) {
ehmaldonado38a21322016-09-02 04:10:34 -0700181 rtc_executable("event_log_visualizer") {
Stefan Holmer13181032016-07-29 14:48:54 +0200182 testonly = true
terelius54ce6802016-07-13 06:44:41 -0700183 sources = [
tereliusd49a37b2016-08-10 07:12:38 -0700184 "event_log_visualizer/main.cc",
terelius54ce6802016-07-13 06:44:41 -0700185 ]
186
kjellandere40a7ee2016-10-16 23:56:12 -0700187 if (!build_with_chromium && is_clang) {
188 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
ehmaldonado38a21322016-09-02 04:10:34 -0700189 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
terelius54ce6802016-07-13 06:44:41 -0700190 }
191
192 defines = [ "ENABLE_RTC_EVENT_LOG" ]
193 deps = [
skvlad185ba292016-08-23 13:01:27 -0700194 ":event_log_visualizer_utils",
terelius54ce6802016-07-13 06:44:41 -0700195 "//third_party/gflags",
196 ]
197 }
198 }
199
ehmaldonado38a21322016-09-02 04:10:34 -0700200 rtc_executable("activity_metric") {
kjellander@webrtc.orgdc0dbad2016-06-02 13:29:07 +0200201 testonly = true
202 sources = [
203 "agc/activity_metric.cc",
204 ]
kjellanderbac04122016-06-02 02:18:48 -0700205
kjellandere40a7ee2016-10-16 23:56:12 -0700206 if (!build_with_chromium && is_clang) {
207 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
ehmaldonado38a21322016-09-02 04:10:34 -0700208 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
kjellander@webrtc.orgdc0dbad2016-06-02 13:29:07 +0200209 }
kjellanderbac04122016-06-02 02:18:48 -0700210
kjellander@webrtc.orgdc0dbad2016-06-02 13:29:07 +0200211 deps = [
212 "../modules/audio_processing",
213 "../system_wrappers:metrics_default",
214 "//build/win:default_exe_manifest",
215 "//testing/gtest",
216 "//third_party/gflags",
217 ]
kjellanderbac04122016-06-02 02:18:48 -0700218 }
219
ehmaldonado3a7f35b2016-09-14 05:10:01 -0700220 tools_unittests_resources = [ "//resources/foreman_cif.yuv" ]
kjellander32c4a202016-08-30 02:53:49 -0700221
222 if (is_ios) {
223 bundle_data("tools_unittests_bundle_data") {
224 testonly = true
225 sources = tools_unittests_resources
226 outputs = [
227 "{{bundle_resources_dir}}/{{source_file_part}}",
228 ]
229 }
230 }
231
ehmaldonado38a21322016-09-02 04:10:34 -0700232 rtc_test("tools_unittests") {
kjellander@webrtc.orgdc0dbad2016-06-02 13:29:07 +0200233 testonly = true
kjellanderbac04122016-06-02 02:18:48 -0700234
kjellander@webrtc.orgdc0dbad2016-06-02 13:29:07 +0200235 sources = [
236 "frame_analyzer/video_quality_analysis_unittest.cc",
237 "frame_editing/frame_editing_unittest.cc",
238 "simple_command_line_parser_unittest.cc",
239 ]
kjellanderbac04122016-06-02 02:18:48 -0700240
kjellander@webrtc.orgdc0dbad2016-06-02 13:29:07 +0200241 # TODO(jschuh): Bug 1348: fix this warning.
242 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
kjellanderbac04122016-06-02 02:18:48 -0700243
kjellandere40a7ee2016-10-16 23:56:12 -0700244 if (!build_with_chromium && is_clang) {
245 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
ehmaldonado38a21322016-09-02 04:10:34 -0700246 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
kjellander@webrtc.orgdc0dbad2016-06-02 13:29:07 +0200247 }
kjellanderbac04122016-06-02 02:18:48 -0700248
kjellander@webrtc.orgdc0dbad2016-06-02 13:29:07 +0200249 deps = [
250 ":command_line_parser",
251 ":frame_editing_lib",
252 ":video_quality_analysis",
253 "../test:test_support_main",
254 "//testing/gtest",
255 ]
kjellanderbac04122016-06-02 02:18:48 -0700256
ehmaldonado3a7f35b2016-09-14 05:10:01 -0700257 data = tools_unittests_resources
kjellander@webrtc.orgdc0dbad2016-06-02 13:29:07 +0200258 if (is_android) {
259 deps += [ "//testing/android/native_test:native_test_support" ]
kjellander28a0ffd2016-08-24 07:48:42 -0700260 shard_timeout = 900
261 }
kjellander32c4a202016-08-30 02:53:49 -0700262 if (is_ios) {
263 deps += [ ":tools_unittests_bundle_data" ]
kjellander@webrtc.orgdc0dbad2016-06-02 13:29:07 +0200264 }
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +0000265 }
aleloi7ebbf902016-06-20 07:39:15 -0700266
267 if (rtc_enable_protobuf) {
268 copy("rtp_analyzer") {
269 sources = [
270 "py_event_log_analyzer/misc.py",
271 "py_event_log_analyzer/pb_parse.py",
272 "py_event_log_analyzer/rtp_analyzer.py",
273 "py_event_log_analyzer/rtp_analyzer.sh",
274 ]
275 outputs = [
276 "$root_build_dir/{{source_file_part}}",
277 ]
278 deps = [
skvladcc91d282016-10-03 18:31:22 -0700279 "../logging:rtc_event_log_proto",
aleloi7ebbf902016-06-20 07:39:15 -0700280 ]
281 }
282 }
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +0000283}