# Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. # # Use of this source code is governed by a BSD-style license # that can be found in the LICENSE file in the root of the source # tree. An additional intellectual property rights grant can be found # in the file PATENTS. All contributing project authors may # be found in the AUTHORS file in the root of the source tree. import("../../webrtc.gni") if (rtc_enable_protobuf) { import("//third_party/protobuf/proto_library.gni") } if (rtc_enable_protobuf) { proto_library("network_tester_config_proto") { sources = [ "network_tester_config.proto" ] proto_out_dir = "rtc_tools/network_tester" } proto_library("network_tester_packet_proto") { sources = [ "network_tester_packet.proto" ] proto_out_dir = "rtc_tools/network_tester" } rtc_library("network_tester") { sources = [ "config_reader.cc", "config_reader.h", "packet_logger.cc", "packet_logger.h", "packet_sender.cc", "packet_sender.h", "test_controller.cc", "test_controller.h", ] defines = [ "WEBRTC_NETWORK_TESTER_PROTO" ] deps = [ ":network_tester_config_proto", ":network_tester_packet_proto", "../../api/task_queue", "../../api/task_queue:default_task_queue_factory", "../../p2p", "../../rtc_base", "../../rtc_base:checks", "../../rtc_base:ignore_wundef", "../../rtc_base:protobuf_utils", "../../rtc_base:rtc_base_approved", "../../rtc_base:rtc_task_queue", "../../rtc_base/synchronization:sequence_checker", "../../rtc_base/third_party/sigslot", "//third_party/abseil-cpp/absl/types:optional", ] } network_tester_unittests_resources = [ "../../resources/network_tester/client_config.dat", "../../resources/network_tester/server_config.dat", ] if (is_ios) { bundle_data("network_tester_unittests_bundle_data") { testonly = true sources = network_tester_unittests_resources outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ] } } rtc_library("network_tester_unittests") { testonly = true sources = [ "network_tester_unittest.cc" ] deps = [ ":network_tester", "../../rtc_base:gunit_helpers", "../../test:fileutils", "../../test:test_support", "//testing/gtest", ] if (is_ios) { deps += [ ":network_tester_unittests_bundle_data" ] } defines = [ "WEBRTC_NETWORK_TESTER_TEST_ENABLED" ] data = network_tester_unittests_resources } rtc_executable("network_tester_server") { sources = [ "server.cc" ] deps = [ ":network_tester" ] } } if (is_android) { rtc_android_apk("NetworkTesterMobile") { testonly = true apk_name = "NetworkTesterMobile" android_manifest = "androidapp/AndroidManifest.xml" min_sdk_version = 17 target_sdk_version = 24 deps = [ ":NetworkTesterMobile_javalib", ":NetworkTesterMobile_resources", "../../rtc_base:base_java", ] shared_libraries = [ "../../rtc_tools/network_tester:network_tester_so" ] } rtc_android_library("NetworkTesterMobile_javalib") { testonly = true android_manifest_for_lint = "androidapp/AndroidManifest.xml" sources = [ "androidapp/src/com/google/media/networktester/MainActivity.java", "androidapp/src/com/google/media/networktester/NetworkTester.java", ] deps = [ ":NetworkTesterMobile_resources", "../../rtc_base:base_java", ] } android_resources("NetworkTesterMobile_resources") { testonly = true resource_dirs = [ "androidapp/res" ] custom_package = "com.google.media.networktester" } rtc_shared_library("network_tester_so") { sources = [ "jni.cpp" ] deps = [ ":network_tester" ] suppressed_configs += [ "//build/config/android:hide_all_but_jni_onload" ] configs += [ "//build/config/android:hide_all_but_jni" ] output_extension = "so" } }