1 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 import("//third_party/protobuf/proto_library.gni") 6 7 component("gcm") { 8 sources = [ 9 "base/mcs_message.cc", 10 "base/mcs_message.h", 11 "base/mcs_util.cc", 12 "base/mcs_util.h", 13 "base/socket_stream.cc", 14 "base/socket_stream.h", 15 "engine/account_mapping.cc", 16 "engine/account_mapping.h", 17 "engine/checkin_request.cc", 18 "engine/checkin_request.h", 19 "engine/connection_factory.cc", 20 "engine/connection_factory.h", 21 "engine/connection_factory_impl.cc", 22 "engine/connection_factory_impl.h", 23 "engine/connection_handler.cc", 24 "engine/connection_handler.h", 25 "engine/connection_handler_impl.cc", 26 "engine/connection_handler_impl.h", 27 "engine/gcm_store.cc", 28 "engine/gcm_store.h", 29 "engine/gcm_store_impl.cc", 30 "engine/gcm_store_impl.h", 31 "engine/gservices_settings.cc", 32 "engine/gservices_settings.h", 33 "engine/heartbeat_manager.cc", 34 "engine/heartbeat_manager.h", 35 "engine/mcs_client.cc", 36 "engine/mcs_client.h", 37 "engine/registration_info.cc", 38 "engine/registration_info.h", 39 "engine/registration_request.cc", 40 "engine/registration_request.h", 41 "engine/unregistration_request.cc", 42 "engine/unregistration_request.h", 43 "monitoring/gcm_stats_recorder.h", 44 ] 45 46 defines = [ "GCM_IMPLEMENTATION" ] 47 48 public_deps = [ 49 ":proto", 50 ] 51 deps = [ 52 "//base", 53 "//base/third_party/dynamic_annotations", 54 "//net", 55 "//third_party/leveldatabase", 56 "//url", 57 ] 58 } 59 60 proto_library("proto") { 61 visibility = [ ":*" ] 62 sources = [ 63 "protocol/android_checkin.proto", 64 "protocol/checkin.proto", 65 "protocol/mcs.proto", 66 ] 67 68 cc_generator_options = "dllexport_decl=GCM_EXPORT:" 69 cc_include = "google_apis/gcm/base/gcm_export.h" 70 defines = [ "GCM_IMPLEMENTATION" ] 71 } 72 73 static_library("test_support") { 74 testonly = true 75 sources = [ 76 "base/fake_encryptor.cc", 77 "base/fake_encryptor.h", 78 "engine/fake_connection_factory.cc", 79 "engine/fake_connection_factory.h", 80 "engine/fake_connection_handler.cc", 81 "engine/fake_connection_handler.h", 82 "monitoring/fake_gcm_stats_recorder.cc", 83 "monitoring/fake_gcm_stats_recorder.h", 84 ] 85 86 public_deps = [ 87 ":gcm", 88 ] 89 deps = [ 90 "//base", 91 "//testing/gtest", 92 ] 93 } 94 95 # A standalone MCS (mobile connection server) client. 96 executable("mcs_probe") { 97 testonly = true 98 sources = [ 99 "tools/mcs_probe.cc", 100 ] 101 102 deps = [ 103 ":gcm", 104 ":proto", 105 ":test_support", 106 "//base", 107 "//net", 108 "//net:test_support", 109 ] 110 } 111 112 test("gcm_unit_tests") { 113 sources = [ 114 "base/mcs_message_unittest.cc", 115 "base/mcs_util_unittest.cc", 116 "base/socket_stream_unittest.cc", 117 "engine/account_mapping_unittest.cc", 118 "engine/checkin_request_unittest.cc", 119 "engine/connection_factory_impl_unittest.cc", 120 "engine/connection_handler_impl_unittest.cc", 121 "engine/gcm_store_impl_unittest.cc", 122 "engine/gservices_settings_unittest.cc", 123 "engine/heartbeat_manager_unittest.cc", 124 "engine/mcs_client_unittest.cc", 125 "engine/registration_request_unittest.cc", 126 "engine/unregistration_request_unittest.cc", 127 ] 128 129 deps = [ 130 ":proto", 131 ":test_support", 132 "//base", 133 "//base/test:run_all_unittests", 134 "//net", 135 "//net:test_support", 136 "//testing/gtest", 137 ] 138 } 139