BUILD.gn 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  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. import("//testing/test.gni")
  5. import("//third_party/protobuf/proto_library.gni")
  6. component("gcm") {
  7. sources = [
  8. "base/gcm_constants.cc",
  9. "base/gcm_constants.h",
  10. "base/gcm_features.cc",
  11. "base/gcm_features.h",
  12. "base/gcm_util.cc",
  13. "base/gcm_util.h",
  14. "base/mcs_message.cc",
  15. "base/mcs_message.h",
  16. "base/mcs_util.cc",
  17. "base/mcs_util.h",
  18. "base/socket_stream.cc",
  19. "base/socket_stream.h",
  20. "engine/account_mapping.cc",
  21. "engine/account_mapping.h",
  22. "engine/checkin_request.cc",
  23. "engine/checkin_request.h",
  24. "engine/connection_event_tracker.cc",
  25. "engine/connection_event_tracker.h",
  26. "engine/connection_factory.cc",
  27. "engine/connection_factory.h",
  28. "engine/connection_factory_impl.cc",
  29. "engine/connection_factory_impl.h",
  30. "engine/connection_handler.cc",
  31. "engine/connection_handler.h",
  32. "engine/connection_handler_impl.cc",
  33. "engine/connection_handler_impl.h",
  34. "engine/gcm_registration_request_handler.cc",
  35. "engine/gcm_registration_request_handler.h",
  36. "engine/gcm_store.cc",
  37. "engine/gcm_store.h",
  38. "engine/gcm_store_impl.cc",
  39. "engine/gcm_store_impl.h",
  40. "engine/gcm_unregistration_request_handler.cc",
  41. "engine/gcm_unregistration_request_handler.h",
  42. "engine/gservices_settings.cc",
  43. "engine/gservices_settings.h",
  44. "engine/gservices_switches.cc",
  45. "engine/gservices_switches.h",
  46. "engine/heartbeat_manager.cc",
  47. "engine/heartbeat_manager.h",
  48. "engine/instance_id_delete_token_request_handler.cc",
  49. "engine/instance_id_delete_token_request_handler.h",
  50. "engine/instance_id_get_token_request_handler.cc",
  51. "engine/instance_id_get_token_request_handler.h",
  52. "engine/mcs_client.cc",
  53. "engine/mcs_client.h",
  54. "engine/registration_request.cc",
  55. "engine/registration_request.h",
  56. "engine/unregistration_request.cc",
  57. "engine/unregistration_request.h",
  58. "monitoring/gcm_stats_recorder.h",
  59. ]
  60. defines = [ "GCM_IMPLEMENTATION" ]
  61. configs += [ "//build/config/compiler:wexit_time_destructors" ]
  62. public_deps = [
  63. ":proto",
  64. "//google_apis",
  65. ]
  66. deps = [
  67. "//base",
  68. "//base/third_party/dynamic_annotations",
  69. "//build:chromeos_buildflags",
  70. "//mojo/public/cpp/system:system",
  71. "//net",
  72. "//services/network/public/cpp",
  73. "//services/network/public/mojom",
  74. "//third_party/leveldatabase",
  75. "//url",
  76. ]
  77. }
  78. proto_library("proto") {
  79. # This is part of the gcm component.
  80. visibility = [ ":gcm" ]
  81. sources = [
  82. "protocol/android_checkin.proto",
  83. "protocol/checkin.proto",
  84. "protocol/mcs.proto",
  85. ]
  86. cc_generator_options = "dllexport_decl=GCM_EXPORT:"
  87. cc_include = "google_apis/gcm/base/gcm_export.h"
  88. component_build_force_source_set = true
  89. defines = [ "GCM_IMPLEMENTATION" ]
  90. }
  91. static_library("test_support") {
  92. testonly = true
  93. sources = [
  94. "base/fake_encryptor.cc",
  95. "base/fake_encryptor.h",
  96. "engine/fake_connection_factory.cc",
  97. "engine/fake_connection_factory.h",
  98. "engine/fake_connection_handler.cc",
  99. "engine/fake_connection_handler.h",
  100. "monitoring/fake_gcm_stats_recorder.cc",
  101. "monitoring/fake_gcm_stats_recorder.h",
  102. ]
  103. public_deps = [ ":gcm" ]
  104. deps = [
  105. "//base",
  106. "//mojo/public/cpp/system:system",
  107. "//net",
  108. "//net:test_support",
  109. "//testing/gtest",
  110. ]
  111. }
  112. # A standalone MCS (mobile connection server) client.
  113. if (!is_ios) {
  114. executable("mcs_probe") {
  115. testonly = true
  116. sources = [ "tools/mcs_probe.cc" ]
  117. deps = [
  118. ":gcm",
  119. ":test_support",
  120. "//base",
  121. "//build/win:default_exe_manifest",
  122. "//mojo/core/embedder",
  123. "//net",
  124. "//net:test_support",
  125. "//services/network:network_service",
  126. "//services/network:test_support",
  127. "//services/network/public/cpp",
  128. "//services/network/public/mojom",
  129. "//third_party/protobuf:protobuf_lite",
  130. ]
  131. }
  132. }
  133. test("gcm_unit_tests") {
  134. sources = [
  135. "base/mcs_message_unittest.cc",
  136. "base/mcs_util_unittest.cc",
  137. "base/socket_stream_unittest.cc",
  138. "engine/account_mapping_unittest.cc",
  139. "engine/checkin_request_unittest.cc",
  140. "engine/connection_event_tracker_unittest.cc",
  141. "engine/connection_factory_impl_unittest.cc",
  142. "engine/connection_handler_impl_unittest.cc",
  143. "engine/gcm_request_test_base.cc",
  144. "engine/gcm_request_test_base.h",
  145. "engine/gcm_store_impl_unittest.cc",
  146. "engine/gservices_settings_unittest.cc",
  147. "engine/heartbeat_manager_unittest.cc",
  148. "engine/mcs_client_unittest.cc",
  149. "engine/registration_request_unittest.cc",
  150. "engine/unregistration_request_unittest.cc",
  151. ]
  152. deps = [
  153. ":gcm",
  154. ":test_support",
  155. "//base",
  156. "//base/test:test_support",
  157. "//build:chromeos_buildflags",
  158. "//google_apis",
  159. "//google_apis:run_all_unittests",
  160. "//google_apis:test_support",
  161. "//mojo/public/cpp/system:system",
  162. "//net",
  163. "//net:test_support",
  164. "//services/network:network_service",
  165. "//services/network:test_support",
  166. "//testing/gtest",
  167. "//third_party/protobuf:protobuf_lite",
  168. ]
  169. if (is_android) {
  170. deps += [ "//net/android:net_java" ]
  171. }
  172. }