chromium/components/sync_preferences/BUILD.gn

# Copyright 2015 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")
import("//build/config/features.gni")

static_library("sync_preferences") {
  sources = [
    "dual_layer_user_pref_store.cc",
    "dual_layer_user_pref_store.h",
    "pref_model_associator.cc",
    "pref_model_associator.h",
    "pref_model_associator_client.cc",
    "pref_model_associator_client.h",
    "pref_service_syncable.cc",
    "pref_service_syncable.h",
    "pref_service_syncable_factory.cc",
    "pref_service_syncable_factory.h",
    "pref_service_syncable_observer.h",
    "preferences_merge_helper.cc",
    "preferences_merge_helper.h",
    "syncable_prefs_database.cc",
    "syncable_prefs_database.h",
    "synced_pref_observer.h",
  ]

  deps = [
    "//base",
    "//build:chromeos_buildflags",
    "//components/metrics/demographics",
    "//components/policy/core/browser",
    "//components/pref_registry",
    "//components/prefs",
    "//components/sync",
  ]

  if (is_chromeos_ash) {
    deps += [ "//ash/constants" ]
  }
}

source_set("common_syncable_prefs_database") {
  sources = [
    "common_syncable_prefs_database.cc",
    "common_syncable_prefs_database.h",
  ]
  deps = [
    ":sync_preferences",
    "//base",
    "//components/autofill/core/common",
    "//components/bookmarks/common",
    "//components/browsing_data/core",
    "//components/commerce/core:pref_names",
    "//components/content_settings/core/common",
    "//components/dom_distiller/core",
    "//components/language/core/browser",
    "//components/metrics",
    "//components/metrics/demographics",
    "//components/ntp_tiles",
    "//components/omnibox/browser",
    "//components/password_manager/core/common",
    "//components/payments/core",
    "//components/safe_browsing/core/common:safe_browsing_prefs",
    "//components/saved_tab_groups:model",
    "//components/search_engines",
    "//components/sharing_message",
    "//components/translate/core/browser",
    "//components/variations/service",
  ]
}

static_library("test_support") {
  testonly = true
  sources = [
    "pref_service_mock_factory.cc",
    "pref_service_mock_factory.h",
    "test_syncable_prefs_database.cc",
    "test_syncable_prefs_database.h",
    "testing_pref_service_syncable.cc",
    "testing_pref_service_syncable.h",
  ]

  deps = [
    ":sync_preferences",
    "//base",
    "//components/pref_registry",
    "//components/prefs:test_support",
    "//testing/gtest",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "dual_layer_user_pref_store_unittest.cc",
    "pref_model_associator_unittest.cc",
    "pref_service_syncable_unittest.cc",
    "preferences_merge_helper_unittest.cc",
  ]

  deps = [
    ":sync_preferences",
    ":test_support",
    "//base/test:test_support",
    "//build:chromeos_buildflags",
    "//components/pref_registry",
    "//components/prefs",
    "//components/prefs:test_support",
    "//components/sync",
    "//components/sync:test_support",
    "//testing/gtest",
  ]

  if (is_chromeos_ash) {
    deps += [ "//ash/constants" ]
  }
}