# Copyright 2016 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.

source_set("autocomplete") {
  sources = [
    "autocomplete_classifier_factory.cc",
    "autocomplete_classifier_factory.h",
    "autocomplete_provider_client_impl.h",
    "autocomplete_provider_client_impl.mm",
    "autocomplete_scheme_classifier_impl.h",
    "autocomplete_scheme_classifier_impl.mm",
    "in_memory_url_index_factory.cc",
    "in_memory_url_index_factory.h",
    "shortcuts_backend_factory.h",
    "shortcuts_backend_factory.mm",
  ]

  configs += [ "//build/config/compiler:enable_arc" ]

  deps = [
    "//base",
    "//components/browser_sync",
    "//components/history/core/browser",
    "//components/keyed_service/core",
    "//components/keyed_service/ios",
    "//components/omnibox/browser",
    "//components/prefs",
    "//components/signin/core/browser",
    "//components/sync",
    "//components/unified_consent",
    "//ios/chrome/browser",
    "//ios/chrome/browser/bookmarks",
    "//ios/chrome/browser/browser_state",
    "//ios/chrome/browser/history",
    "//ios/chrome/browser/search_engines",
    "//ios/chrome/browser/signin",
    "//ios/chrome/browser/sync",
    "//ios/chrome/browser/tabs",
    "//ios/chrome/browser/unified_consent",
    "//ios/chrome/browser/web_state_list",
    "//ios/public/provider/chrome/browser",
    "//ios/web",
    "//url",
  ]
}
