|  | # Copyright 2014 The Chromium Authors. All rights reserved. | 
|  | # Use of this source code is governed by a BSD-style license that can be | 
|  | # found in the LICENSE file. | 
|  |  | 
|  | static_library("gcm_driver") { | 
|  | sources = [ | 
|  | "android/component_jni_registrar.cc", | 
|  | "android/component_jni_registrar.h", | 
|  | "default_gcm_app_handler.cc", | 
|  | "default_gcm_app_handler.h", | 
|  | "gcm_account_mapper.cc", | 
|  | "gcm_account_mapper.h", | 
|  | "gcm_account_tracker.cc", | 
|  | "gcm_account_tracker.h", | 
|  | "gcm_activity.cc", | 
|  | "gcm_activity.h", | 
|  | "gcm_app_handler.cc", | 
|  | "gcm_app_handler.h", | 
|  | "gcm_backoff_policy.cc", | 
|  | "gcm_backoff_policy.h", | 
|  | "gcm_channel_status_request.cc", | 
|  | "gcm_channel_status_request.h", | 
|  | "gcm_channel_status_syncer.cc", | 
|  | "gcm_channel_status_syncer.h", | 
|  | "gcm_client.cc", | 
|  | "gcm_client.h", | 
|  | "gcm_client_factory.cc", | 
|  | "gcm_client_factory.h", | 
|  | "gcm_client_impl.cc", | 
|  | "gcm_client_impl.h", | 
|  | "gcm_connection_observer.cc", | 
|  | "gcm_connection_observer.h", | 
|  | "gcm_delayed_task_controller.cc", | 
|  | "gcm_delayed_task_controller.h", | 
|  | "gcm_desktop_utils.cc", | 
|  | "gcm_desktop_utils.h", | 
|  | "gcm_driver.cc", | 
|  | "gcm_driver.h", | 
|  | "gcm_driver_android.cc", | 
|  | "gcm_driver_android.h", | 
|  | "gcm_driver_constants.cc", | 
|  | "gcm_driver_constants.h", | 
|  | "gcm_driver_desktop.cc", | 
|  | "gcm_driver_desktop.h", | 
|  | "gcm_internals_constants.cc", | 
|  | "gcm_internals_constants.h", | 
|  | "gcm_internals_helper.cc", | 
|  | "gcm_internals_helper.h", | 
|  | "gcm_profile_service.cc", | 
|  | "gcm_profile_service.h", | 
|  | "gcm_stats_recorder_android.cc", | 
|  | "gcm_stats_recorder_android.h", | 
|  | "gcm_stats_recorder_impl.cc", | 
|  | "gcm_stats_recorder_impl.h", | 
|  | "registration_info.cc", | 
|  | "registration_info.h", | 
|  | "system_encryptor.cc", | 
|  | "system_encryptor.h", | 
|  | ] | 
|  |  | 
|  | public_deps = [ | 
|  | "//base", | 
|  | "//components/gcm_driver/common", | 
|  | "//components/gcm_driver/crypto", | 
|  | "//components/gcm_driver/instance_id", | 
|  | ] | 
|  | deps = [ | 
|  | "//base:i18n", | 
|  | "//components/crx_file", | 
|  | "//components/keyed_service/core", | 
|  | "//components/os_crypt", | 
|  | "//components/pref_registry", | 
|  | "//components/prefs", | 
|  | "//components/signin/core/browser", | 
|  | "//components/sync", | 
|  | "//components/version_info", | 
|  | "//google_apis", | 
|  | "//google_apis/gcm", | 
|  | "//net", | 
|  | "//url:url", | 
|  | ] | 
|  |  | 
|  | # This target goes with these other deps and they can include headers from | 
|  | # each other. | 
|  | allow_circular_includes_from = [ | 
|  | "//components/gcm_driver/crypto", | 
|  | "//components/gcm_driver/instance_id", | 
|  | ] | 
|  |  | 
|  | if (is_chromeos) { | 
|  | deps += [ "//components/timers" ] | 
|  | } | 
|  |  | 
|  | if (is_android) { | 
|  | sources -= [ | 
|  | "gcm_account_mapper.cc", | 
|  | "gcm_account_mapper.h", | 
|  | "gcm_channel_status_request.cc", | 
|  | "gcm_channel_status_request.h", | 
|  | "gcm_channel_status_syncer.cc", | 
|  | "gcm_channel_status_syncer.h", | 
|  | "gcm_client_factory.cc", | 
|  | "gcm_client_factory.h", | 
|  | "gcm_client_impl.cc", | 
|  | "gcm_client_impl.h", | 
|  | "gcm_desktop_utils.cc", | 
|  | "gcm_desktop_utils.h", | 
|  | "gcm_driver_desktop.cc", | 
|  | "gcm_driver_desktop.h", | 
|  | "gcm_stats_recorder_impl.cc", | 
|  | "gcm_stats_recorder_impl.h", | 
|  | ] | 
|  | deps -= [ | 
|  | "//components/crx_file", | 
|  | "//google_apis/gcm", | 
|  | ] | 
|  | deps += [ "android:jni_headers" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | static_library("test_support") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "fake_gcm_app_handler.cc", | 
|  | "fake_gcm_app_handler.h", | 
|  | "fake_gcm_client.cc", | 
|  | "fake_gcm_client.h", | 
|  | "fake_gcm_client_factory.cc", | 
|  | "fake_gcm_client_factory.h", | 
|  | "fake_gcm_driver.cc", | 
|  | "fake_gcm_driver.h", | 
|  | ] | 
|  |  | 
|  | public_deps = [ | 
|  | ":gcm_driver", | 
|  | ] | 
|  | deps = [ | 
|  | "//base", | 
|  | "//google_apis/gcm:test_support", | 
|  | "//net", | 
|  | "//testing/gtest", | 
|  | ] | 
|  |  | 
|  | if (is_android) { | 
|  | sources -= [ | 
|  | "fake_gcm_client.cc", | 
|  | "fake_gcm_client.h", | 
|  | "fake_gcm_client_factory.cc", | 
|  | "fake_gcm_client_factory.h", | 
|  | ] | 
|  | deps -= [ "//google_apis/gcm:test_support" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | source_set("unit_tests") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ | 
|  | "gcm_account_mapper_unittest.cc", | 
|  | "gcm_account_tracker_unittest.cc", | 
|  | "gcm_channel_status_request_unittest.cc", | 
|  | "gcm_client_impl_unittest.cc", | 
|  | "gcm_delayed_task_controller_unittest.cc", | 
|  | "gcm_driver_desktop_unittest.cc", | 
|  | "gcm_stats_recorder_android_unittest.cc", | 
|  | "gcm_stats_recorder_impl_unittest.cc", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":gcm_driver", | 
|  | ":test_support", | 
|  | "//base", | 
|  | "//base/test:test_support", | 
|  | "//components/gcm_driver/crypto", | 
|  | "//components/prefs:test_support", | 
|  | "//components/sync/protocol", | 
|  | "//google_apis:test_support", | 
|  | "//google_apis/gcm:test_support", | 
|  | "//net:test_support", | 
|  | "//testing/gtest", | 
|  | "//third_party/protobuf:protobuf_lite", | 
|  | ] | 
|  |  | 
|  | if (is_android) { | 
|  | sources -= [ | 
|  | "gcm_account_mapper_unittest.cc", | 
|  | "gcm_channel_status_request_unittest.cc", | 
|  | "gcm_client_impl_unittest.cc", | 
|  | "gcm_driver_desktop_unittest.cc", | 
|  | "gcm_stats_recorder_impl_unittest.cc", | 
|  | ] | 
|  | } | 
|  | } |