Home | History | Annotate | Download | only in gcm
      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