chromium/chromeos/ash/services/device_sync/BUILD.gn

# Copyright 2018 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/config/chromeos/ui_mode.gni")

assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //ash")

static_library("feature_status_change") {
  sources = [ "feature_status_change.h" ]
}

static_library("group_private_key_and_better_together_metadata_status") {
  sources = [
    "group_private_key_and_better_together_metadata_status.cc",
    "group_private_key_and_better_together_metadata_status.h",
  ]
}

static_library("device_sync") {
  sources = [
    "async_execution_time_metrics_logger.cc",
    "async_execution_time_metrics_logger.h",
    "attestation_certificates_syncer.h",
    "attestation_certificates_syncer_impl.cc",
    "attestation_certificates_syncer_impl.h",
    "cryptauth_api_call_flow.cc",
    "cryptauth_api_call_flow.h",
    "cryptauth_client.h",
    "cryptauth_client_impl.cc",
    "cryptauth_client_impl.h",
    "cryptauth_device.cc",
    "cryptauth_device.h",
    "cryptauth_device_activity_getter.cc",
    "cryptauth_device_activity_getter.h",
    "cryptauth_device_activity_getter_impl.cc",
    "cryptauth_device_activity_getter_impl.h",
    "cryptauth_device_manager.cc",
    "cryptauth_device_manager.h",
    "cryptauth_device_manager_impl.cc",
    "cryptauth_device_manager_impl.h",
    "cryptauth_device_notifier.h",
    "cryptauth_device_notifier_impl.cc",
    "cryptauth_device_notifier_impl.h",
    "cryptauth_device_registry.cc",
    "cryptauth_device_registry.h",
    "cryptauth_device_registry_impl.cc",
    "cryptauth_device_registry_impl.h",
    "cryptauth_device_sync_result.cc",
    "cryptauth_device_sync_result.h",
    "cryptauth_device_syncer.cc",
    "cryptauth_device_syncer.h",
    "cryptauth_device_syncer_impl.cc",
    "cryptauth_device_syncer_impl.h",
    "cryptauth_ecies_encryptor.cc",
    "cryptauth_ecies_encryptor.h",
    "cryptauth_ecies_encryptor_impl.cc",
    "cryptauth_ecies_encryptor_impl.h",
    "cryptauth_enroller.h",
    "cryptauth_enroller_factory_impl.cc",
    "cryptauth_enroller_factory_impl.h",
    "cryptauth_enroller_impl.cc",
    "cryptauth_enroller_impl.h",
    "cryptauth_enrollment_constants.cc",
    "cryptauth_enrollment_constants.h",
    "cryptauth_enrollment_manager.cc",
    "cryptauth_enrollment_manager.h",
    "cryptauth_enrollment_manager_impl.cc",
    "cryptauth_enrollment_manager_impl.h",
    "cryptauth_enrollment_result.cc",
    "cryptauth_enrollment_result.h",
    "cryptauth_feature_status_getter.cc",
    "cryptauth_feature_status_getter.h",
    "cryptauth_feature_status_getter_impl.cc",
    "cryptauth_feature_status_getter_impl.h",
    "cryptauth_feature_status_setter.h",
    "cryptauth_feature_status_setter_impl.cc",
    "cryptauth_feature_status_setter_impl.h",
    "cryptauth_feature_type.cc",
    "cryptauth_feature_type.h",
    "cryptauth_gcm_manager.cc",
    "cryptauth_gcm_manager.h",
    "cryptauth_gcm_manager_impl.cc",
    "cryptauth_gcm_manager_impl.h",
    "cryptauth_group_private_key_sharer.cc",
    "cryptauth_group_private_key_sharer.h",
    "cryptauth_group_private_key_sharer_impl.cc",
    "cryptauth_group_private_key_sharer_impl.h",
    "cryptauth_key.cc",
    "cryptauth_key.h",
    "cryptauth_key_bundle.cc",
    "cryptauth_key_bundle.h",
    "cryptauth_key_creator.cc",
    "cryptauth_key_creator.h",
    "cryptauth_key_creator_impl.cc",
    "cryptauth_key_creator_impl.h",
    "cryptauth_key_proof_computer.h",
    "cryptauth_key_proof_computer_impl.cc",
    "cryptauth_key_proof_computer_impl.h",
    "cryptauth_key_registry.cc",
    "cryptauth_key_registry.h",
    "cryptauth_key_registry_impl.cc",
    "cryptauth_key_registry_impl.h",
    "cryptauth_metadata_syncer.cc",
    "cryptauth_metadata_syncer.h",
    "cryptauth_metadata_syncer_impl.cc",
    "cryptauth_metadata_syncer_impl.h",
    "cryptauth_scheduler.cc",
    "cryptauth_scheduler.h",
    "cryptauth_scheduler_impl.cc",
    "cryptauth_scheduler_impl.h",
    "cryptauth_task_metrics_logger.cc",
    "cryptauth_task_metrics_logger.h",
    "cryptauth_v2_device_manager.cc",
    "cryptauth_v2_device_manager.h",
    "cryptauth_v2_device_manager_impl.cc",
    "cryptauth_v2_device_manager_impl.h",
    "cryptauth_v2_enroller.cc",
    "cryptauth_v2_enroller.h",
    "cryptauth_v2_enroller_impl.cc",
    "cryptauth_v2_enroller_impl.h",
    "cryptauth_v2_enrollment_manager_impl.cc",
    "cryptauth_v2_enrollment_manager_impl.h",
    "device_sync_base.cc",
    "device_sync_base.h",
    "device_sync_impl.cc",
    "device_sync_impl.h",
    "device_sync_type_converters.cc",
    "device_sync_type_converters.h",
    "network_request_error.cc",
    "network_request_error.h",
    "pref_names.cc",
    "pref_names.h",
    "remote_device_loader.cc",
    "remote_device_loader.h",
    "remote_device_provider.cc",
    "remote_device_provider.h",
    "remote_device_provider_impl.cc",
    "remote_device_provider_impl.h",
    "remote_device_v2_loader.h",
    "remote_device_v2_loader_impl.cc",
    "remote_device_v2_loader_impl.h",
    "software_feature_manager.h",
    "software_feature_manager_impl.cc",
    "software_feature_manager_impl.h",
    "switches.cc",
    "switches.h",
    "sync_scheduler.cc",
    "sync_scheduler.h",
    "sync_scheduler_impl.cc",
    "sync_scheduler_impl.h",
    "synced_bluetooth_address_tracker.h",
    "synced_bluetooth_address_tracker_impl.cc",
    "synced_bluetooth_address_tracker_impl.h",
    "value_string_encoding.cc",
    "value_string_encoding.h",
  ]

  public_deps = [
    ":feature_status_change",
    ":group_private_key_and_better_together_metadata_status",
    "//chromeos/ash/components/multidevice",
    "//chromeos/ash/components/multidevice/logging",
    "//chromeos/ash/services/device_sync/public/mojom",
    "//components/signin/public/identity_manager",
    "//services/network/public/cpp",
  ]

  deps = [
    "//ash/constants",
    "//base",
    "//chromeos/ash/components/multidevice",
    "//chromeos/ash/components/multidevice/logging",
    "//chromeos/ash/components/network",
    "//chromeos/ash/services/device_sync/proto:util",
    "//chromeos/ash/services/device_sync/public/cpp",
    "//chromeos/ash/services/device_sync/public/mojom",
    "//components/gcm_driver",
    "//components/prefs",
    "//device/bluetooth",
    "//net",
    "//third_party/securemessage/proto",
  ]

  visibility = [
    ":*",
    "//chrome/browser/ash:*",
    "//chrome/browser/ash/device_sync",
    "//chrome/browser/ash/phonehub:*",
    "//chrome/browser/ash/tether:unit_tests",
    "//chrome/browser/chromeos",
    "//chrome/test:test_support_ui",
    "//chromeos/ash/services/device_sync/public/cpp:prefs",
    "//chromeos/ash/services/device_sync/public/cpp:unit_tests",
  ]
}

static_library("test_support") {
  testonly = true

  sources = [
    "cryptauth_v2_device_sync_test_devices.cc",
    "cryptauth_v2_device_sync_test_devices.h",
    "fake_attestation_certificates_syncer.cc",
    "fake_attestation_certificates_syncer.h",
    "fake_cryptauth_device_manager.cc",
    "fake_cryptauth_device_manager.h",
    "fake_cryptauth_device_notifier.cc",
    "fake_cryptauth_device_notifier.h",
    "fake_cryptauth_device_syncer.cc",
    "fake_cryptauth_device_syncer.h",
    "fake_cryptauth_ecies_encryptor.cc",
    "fake_cryptauth_ecies_encryptor.h",
    "fake_cryptauth_enrollment_manager.cc",
    "fake_cryptauth_enrollment_manager.h",
    "fake_cryptauth_feature_status_getter.cc",
    "fake_cryptauth_feature_status_getter.h",
    "fake_cryptauth_feature_status_setter.cc",
    "fake_cryptauth_feature_status_setter.h",
    "fake_cryptauth_gcm_manager.cc",
    "fake_cryptauth_gcm_manager.h",
    "fake_cryptauth_group_private_key_sharer.cc",
    "fake_cryptauth_group_private_key_sharer.h",
    "fake_cryptauth_key_creator.cc",
    "fake_cryptauth_key_creator.h",
    "fake_cryptauth_key_proof_computer.cc",
    "fake_cryptauth_key_proof_computer.h",
    "fake_cryptauth_metadata_syncer.cc",
    "fake_cryptauth_metadata_syncer.h",
    "fake_cryptauth_scheduler.cc",
    "fake_cryptauth_scheduler.h",
    "fake_cryptauth_v2_device_manager.cc",
    "fake_cryptauth_v2_device_manager.h",
    "fake_cryptauth_v2_enroller.cc",
    "fake_cryptauth_v2_enroller.h",
    "fake_device_sync.cc",
    "fake_device_sync.h",
    "fake_device_sync_observer.cc",
    "fake_device_sync_observer.h",
    "fake_ecies_encryption.cc",
    "fake_ecies_encryption.h",
    "fake_remote_device_provider.cc",
    "fake_remote_device_provider.h",
    "fake_remote_device_v2_loader.cc",
    "fake_remote_device_v2_loader.h",
    "fake_software_feature_manager.cc",
    "fake_software_feature_manager.h",
    "fake_synced_bluetooth_address_tracker.cc",
    "fake_synced_bluetooth_address_tracker.h",
    "mock_cryptauth_client.cc",
    "mock_cryptauth_client.h",
    "mock_sync_scheduler.cc",
    "mock_sync_scheduler.h",
  ]

  public_deps = [ ":device_sync" ]

  deps = [
    ":device_sync",
    "//base",
    "//chromeos/ash/services/device_sync/proto:test_support",
    "//chromeos/ash/services/device_sync/public/cpp",
    "//chromeos/ash/services/device_sync/public/mojom",
    "//testing/gmock",
    "//testing/gtest",
  ]
}

source_set("stub_device_sync") {
  sources = [
    "stub_device_sync.cc",
    "stub_device_sync.h",
  ]

  deps = [
    ":device_sync",
    "//base",
    "//chromeos/ash/components/multidevice:stub_multidevice_util",
  ]
}

source_set("unit_tests") {
  testonly = true

  sources = [
    "attestation_certificates_syncer_impl_unittest.cc",
    "cryptauth_api_call_flow_unittest.cc",
    "cryptauth_client_impl_unittest.cc",
    "cryptauth_device_activity_getter_impl_unittest.cc",
    "cryptauth_device_manager_impl_unittest.cc",
    "cryptauth_device_notifier_impl_unittest.cc",
    "cryptauth_device_registry_impl_unittest.cc",
    "cryptauth_device_syncer_impl_unittest.cc",
    "cryptauth_device_unittest.cc",
    "cryptauth_ecies_encryptor_impl_unittest.cc",
    "cryptauth_enroller_impl_unittest.cc",
    "cryptauth_enrollment_manager_impl_unittest.cc",
    "cryptauth_feature_status_getter_impl_unittest.cc",
    "cryptauth_feature_status_setter_impl_unittest.cc",
    "cryptauth_feature_type_unittest.cc",
    "cryptauth_gcm_manager_impl_unittest.cc",
    "cryptauth_group_private_key_sharer_impl_unittest.cc",
    "cryptauth_key_bundle_unittest.cc",
    "cryptauth_key_creator_impl_unittest.cc",
    "cryptauth_key_proof_computer_impl_unittest.cc",
    "cryptauth_key_registry_impl_unittest.cc",
    "cryptauth_key_unittest.cc",
    "cryptauth_metadata_syncer_impl_unittest.cc",
    "cryptauth_scheduler_impl_unittest.cc",
    "cryptauth_v2_device_manager_impl_unittest.cc",
    "cryptauth_v2_enroller_impl_unittest.cc",
    "cryptauth_v2_enrollment_manager_impl_unittest.cc",
    "device_sync_service_unittest.cc",
    "remote_device_loader_unittest.cc",
    "remote_device_provider_impl_unittest.cc",
    "remote_device_v2_loader_impl_unittest.cc",
    "software_feature_manager_impl_unittest.cc",
    "sync_scheduler_impl_unittest.cc",
    "synced_bluetooth_address_tracker_impl_unittest.cc",
  ]

  deps = [
    ":device_sync",
    ":feature_status_change",
    ":test_support",
    "//ash/constants",
    "//base",
    "//base/test:test_support",
    "//chromeos/ash/components/dbus:test_support",
    "//chromeos/ash/components/multidevice",
    "//chromeos/ash/components/multidevice:test_support",
    "//chromeos/ash/components/network",
    "//chromeos/ash/components/network:test_support",
    "//chromeos/ash/services/device_sync/proto:test_support",
    "//chromeos/ash/services/device_sync/proto:util",
    "//chromeos/ash/services/device_sync/public/cpp:prefs",
    "//chromeos/ash/services/device_sync/public/cpp:test_support",
    "//chromeos/ash/services/device_sync/public/cpp:unit_tests",
    "//chromeos/ash/services/device_sync/public/mojom",
    "//chromeos/ash/services/device_sync/public/mojom:unit_tests",
    "//components/gcm_driver:test_support",
    "//components/prefs:test_support",
    "//components/signin/public/identity_manager:test_support",
    "//device/bluetooth:mocks",
    "//net/traffic_annotation:test_support",
    "//services/network:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/securemessage/proto",
  ]
}