| # Copyright 2014 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/buildflag_header.gni") |
| import("//build/util/process_version.gni") |
| import("//remoting/build/config/remoting_build.gni") |
| import("//remoting/build/config/remoting_logging.gni") |
| import("//testing/libfuzzer/fuzzer_test.gni") |
| import("//third_party/protobuf/proto_library.gni") |
| |
| proto_library("protobuf_http_client_messages_proto") { |
| sources = [ "protobuf_http_client_messages.proto" ] |
| } |
| |
| process_version("remoting_base_version") { |
| sources = [ "//chrome/VERSION" ] |
| template_file = "//remoting/base/version.h.in" |
| output = "$target_gen_dir/version.h" |
| } |
| |
| buildflag_header("buildflags") { |
| header = "buildflags.h" |
| flags = [ "REMOTING_INTERNAL=$remoting_internal" ] |
| } |
| |
| source_set("http_status") { |
| sources = [ |
| "http_status.cc", |
| "http_status.h", |
| ] |
| deps = [ |
| ":protobuf_http_client_messages_proto", |
| "//base", |
| "//net", |
| ] |
| } |
| |
| source_set("base") { |
| sources = [ |
| "async_file_util.cc", |
| "async_file_util.h", |
| "authentication_method.cc", |
| "authentication_method.h", |
| "auto_thread.cc", |
| "auto_thread.h", |
| "auto_thread_task_runner.cc", |
| "auto_thread_task_runner.h", |
| "buffered_socket_writer.cc", |
| "buffered_socket_writer.h", |
| "capabilities.cc", |
| "capabilities.h", |
| "certificate_helpers.cc", |
| "certificate_helpers.h", |
| "cloud_service_client.cc", |
| "cloud_service_client.h", |
| "cloud_session_authz_service_client_factory.cc", |
| "cloud_session_authz_service_client_factory.h", |
| "compound_buffer.cc", |
| "compound_buffer.h", |
| "compute_engine_service_client.cc", |
| "compute_engine_service_client.h", |
| "constants.cc", |
| "constants.h", |
| "corp_auth_util.cc", |
| "corp_auth_util.h", |
| "corp_logging_service_client.cc", |
| "corp_logging_service_client.h", |
| "corp_service_client.cc", |
| "corp_service_client.h", |
| "corp_session_authz_service_client.cc", |
| "corp_session_authz_service_client.h", |
| "corp_session_authz_service_client_factory.cc", |
| "corp_session_authz_service_client_factory.h", |
| "cpu_utils.cc", |
| "cpu_utils.h", |
| "directory_service_client.cc", |
| "directory_service_client.h", |
| "fqdn.cc", |
| "fqdn.h", |
| "instance_identity_token.cc", |
| "instance_identity_token.h", |
| "instance_identity_token_getter.h", |
| "instance_identity_token_getter_impl.cc", |
| "instance_identity_token_getter_impl.h", |
| "internal_headers.h", |
| "is_google_email.cc", |
| "is_google_email.h", |
| "leaky_bucket.cc", |
| "leaky_bucket.h", |
| "local_session_policies_provider.cc", |
| "local_session_policies_provider.h", |
| "logging_service_client.h", |
| "protobuf_http_client.cc", |
| "protobuf_http_client.h", |
| "protobuf_http_request.cc", |
| "protobuf_http_request.h", |
| "protobuf_http_request_base.cc", |
| "protobuf_http_request_base.h", |
| "protobuf_http_request_config.cc", |
| "protobuf_http_request_config.h", |
| "protobuf_http_stream_parser.cc", |
| "protobuf_http_stream_parser.h", |
| "protobuf_http_stream_request.cc", |
| "protobuf_http_stream_request.h", |
| "queued_task_poster.cc", |
| "queued_task_poster.h", |
| "rate_counter.cc", |
| "rate_counter.h", |
| "result.h", |
| "rsa_key_pair.cc", |
| "rsa_key_pair.h", |
| "running_samples.cc", |
| "running_samples.h", |
| "scoped_protobuf_http_request.cc", |
| "scoped_protobuf_http_request.h", |
| "service_urls.cc", |
| "service_urls.h", |
| "session_authz_service_client.cc", |
| "session_authz_service_client.h", |
| "session_authz_service_client_factory.h", |
| "session_options.cc", |
| "session_options.h", |
| "socket_reader.cc", |
| "socket_reader.h", |
| "source_location.cc", |
| "source_location.h", |
| "task_util.h", |
| "typed_buffer.h", |
| "url_loader_network_service_observer.cc", |
| "url_loader_network_service_observer.h", |
| "url_request_context_getter.cc", |
| "url_request_context_getter.h", |
| "util.cc", |
| "util.h", |
| "vlog_net_log.cc", |
| "vlog_net_log.h", |
| "weighted_samples.cc", |
| "weighted_samples.h", |
| ] |
| |
| configs += [ |
| "//build/config/compiler:wexit_time_destructors", |
| "//remoting/build/config:version", |
| ] |
| |
| public_deps = [ |
| ":http_status", |
| "//base", |
| "//net", |
| "//remoting/proto", |
| "//third_party/protobuf:protobuf_lite", |
| ] |
| deps = [ |
| ":authorization", |
| ":buildflags", |
| ":logging", |
| ":name_value_map", |
| ":protobuf_http_client_messages_proto", |
| ":remoting_base_version", |
| ":session_policies", |
| "//google_apis", |
| "//google_apis/common:request_util", |
| "//remoting/proto:internal_structs", |
| "//remoting/proto/google/internal/remoting/cloud/v1alpha:messages", |
| "//remoting/proto/google/remoting/cloud/v1:messages", |
| "//remoting/proto/remoting/v1:directory_proto", |
| "//remoting/proto/remoting/v1:remote_support_host_messages", |
| "//services/network/public/cpp", |
| "//services/network/public/mojom", |
| "//third_party/abseil-cpp:absl", |
| "//third_party/libvpx", |
| "//third_party/webrtc_overrides:webrtc_component", |
| "//url", |
| ] |
| |
| if (remoting_internal) { |
| deps += [ |
| "//remoting/internal/base", |
| "//remoting/internal/proto", |
| ] |
| } else { |
| deps += [ |
| ":api_key_stubs", |
| "//remoting/proto:internal_stubs", |
| ] |
| } |
| |
| if (is_win) { |
| sources += [ "scoped_sc_handle_win.h" ] |
| libs = [ "crypt32.lib" ] # For CryptoAPI functions in certificate_helpers |
| } else if (is_linux || is_chromeos) { |
| sources += [ |
| "file_path_util_linux.cc", |
| "file_path_util_linux.h", |
| ] |
| } |
| } |
| |
| source_set("name_value_map") { |
| sources = [ "name_value_map.h" ] |
| deps = [ "//base" ] |
| } |
| |
| source_set("errors") { |
| sources = [ |
| "errors.cc", |
| "errors.h", |
| ] |
| deps = [ |
| ":name_value_map", |
| "//base", |
| "//remoting/proto:error_code_proto", |
| ] |
| } |
| |
| source_set("session_policies") { |
| public = [ |
| "port_range.h", |
| "session_policies.h", |
| ] |
| sources = [ |
| "port_range.cc", |
| "session_policies.cc", |
| ] |
| deps = [ "//base" ] |
| } |
| |
| source_set("authorization") { |
| sources = [ |
| "gaia_oauth_client.cc", |
| "gaia_oauth_client.h", |
| "oauth_client.h", |
| "oauth_token_getter.cc", |
| "oauth_token_getter.h", |
| "oauth_token_getter_impl.cc", |
| "oauth_token_getter_impl.h", |
| "oauth_token_getter_proxy.cc", |
| "oauth_token_getter_proxy.h", |
| "oauth_token_info.cc", |
| "oauth_token_info.h", |
| "passthrough_oauth_token_getter.cc", |
| "passthrough_oauth_token_getter.h", |
| ] |
| |
| configs += [ |
| "//build/config/compiler:wexit_time_destructors", |
| "//remoting/build/config:version", |
| ] |
| |
| deps = [ |
| ":logging", |
| "//services/network/public/cpp", |
| ] |
| |
| public_deps = [ |
| "//base", |
| "//google_apis", |
| "//net", |
| ] |
| } |
| |
| source_set("logging") { |
| public = [ "logging.h" ] |
| |
| sources = [ |
| "logging.cc", |
| "logging_internal.h", |
| ] |
| |
| if (is_linux || is_chromeos) { |
| sources += [ "logging_linux.cc" ] |
| } |
| |
| if (is_mac) { |
| sources += [ "logging_mac.cc" ] |
| } |
| |
| if (is_win) { |
| sources += [ "logging_win.cc" ] |
| } |
| |
| if (remoting_webrtc_verbose_logging) { |
| defines = [ "WEBRTC_VERBOSE_LOGGING" ] |
| } |
| |
| deps = [ "//base" ] |
| } |
| |
| source_set("settings") { |
| sources = [ |
| "host_settings.cc", |
| "host_settings.h", |
| "user_settings.cc", |
| "user_settings.h", |
| ] |
| deps = [ |
| ":logging", |
| "//base", |
| "//remoting/base", |
| ] |
| |
| if (is_win) { |
| sources += [ |
| "host_settings_win.cc", |
| "host_settings_win.h", |
| "user_settings_win.cc", |
| "user_settings_win.h", |
| ] |
| } else if (is_mac || is_linux) { |
| sources += [ |
| "file_host_settings.cc", |
| "file_host_settings.h", |
| ] |
| if (is_linux) { |
| sources += [ "file_host_settings_linux.cc" ] |
| } else if (is_mac) { |
| sources += [ "file_host_settings_mac.cc" ] |
| } |
| } |
| } |
| |
| static_library("test_support") { |
| testonly = true |
| |
| sources = [ |
| "fake_oauth_token_getter.cc", |
| "fake_oauth_token_getter.h", |
| "mock_oauth_client.cc", |
| "mock_oauth_client.h", |
| "mock_oauth_token_getter.cc", |
| "mock_oauth_token_getter.h", |
| "mock_session_authz_service_client.cc", |
| "mock_session_authz_service_client.h", |
| "protobuf_http_test_responder.cc", |
| "protobuf_http_test_responder.h", |
| "test_rsa_key_pair.h", |
| ] |
| |
| deps = [ |
| ":logging", |
| ":protobuf_http_client_messages_proto", |
| "//base/test:test_support", |
| "//remoting/proto", |
| "//remoting/proto:internal_structs", |
| "//services/network:test_support", |
| "//testing/gmock", |
| ] |
| public_deps = [ |
| ":authorization", |
| ":base", |
| "//base", |
| "//remoting/base/crash", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//third_party/protobuf:protobuf_lite", |
| ] |
| } |
| |
| proto_library("test_proto") { |
| testonly = true |
| |
| sources = [ "protobuf_http_client_test_messages.proto" ] |
| } |
| |
| source_set("api_key_stubs") { |
| public = [ "api_key_stubs.h" ] |
| |
| sources = [ |
| "api_key_stubs.cc", |
| "api_key_stubs.h", |
| ] |
| } |
| |
| source_set("run_all_unittests") { |
| testonly = true |
| |
| sources = [ "run_all_unittests.cc" ] |
| if (is_chromeos) { |
| sources += [ |
| "chromeos_remoting_test_suite.cc", |
| "chromeos_remoting_test_suite.h", |
| ] |
| } |
| deps = [ |
| "//base", |
| "//base/test:test_support", |
| "//mojo/core/embedder", |
| "//testing/gtest", |
| ] |
| if (is_chromeos) { |
| deps += [ "//chromeos/ash/components:test_support" ] |
| data = [ "$root_out_dir/locales/en-US.pak" ] |
| data_deps = [ "//ui/resources:ui_test_pak_data" ] |
| } |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| |
| sources = [ |
| "auto_thread_task_runner_unittest.cc", |
| "auto_thread_unittest.cc", |
| "buffered_socket_writer_unittest.cc", |
| "capabilities_unittest.cc", |
| "compound_buffer_unittest.cc", |
| "instance_identity_token_getter_impl_unittest.cc", |
| "leaky_bucket_unittest.cc", |
| "local_session_policies_provider_unittest.cc", |
| "oauth_token_getter_proxy_unittest.cc", |
| "port_range_unittest.cc", |
| "protobuf_http_client_unittest.cc", |
| "protobuf_http_stream_parser_unittest.cc", |
| "queued_task_poster_unittest.cc", |
| "rate_counter_unittest.cc", |
| "result_unittest.cc", |
| "rsa_key_pair_unittest.cc", |
| "running_samples_unittest.cc", |
| "session_options_unittest.cc", |
| "session_policies_unittest.cc", |
| "source_location_unittest.cc", |
| "typed_buffer_unittest.cc", |
| "util_unittest.cc", |
| "weighted_samples_unittest.cc", |
| ] |
| |
| deps = [ |
| ":logging", |
| ":protobuf_http_client_messages_proto", |
| ":run_all_unittests", |
| ":session_policies", |
| ":test_proto", |
| ":test_support", |
| "//base", |
| "//net:test_support", |
| "//services/network:test_support", |
| "//services/network/public/cpp", |
| "//third_party/webrtc_overrides:webrtc_component", |
| ] |
| |
| if (is_win || is_chromeos) { |
| deps += [ "//third_party/breakpad:client" ] |
| } |
| |
| # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and |
| # enable the diagnostic by removing this line. |
| configs += [ "//build/config/compiler:no_exit_time_destructors" ] |
| } |
| |
| fuzzer_test("remoting_protobuf_http_stream_parser_fuzzer") { |
| sources = [ "protobuf_http_stream_parser_fuzzer.cc" ] |
| deps = [ |
| ":base", |
| "//base", |
| "//base/test:test_support", |
| "//third_party/protobuf:protobuf_lite", |
| ] |
| } |