blob: fc5445c3ccdb9516c1cf2ebde8555203e57b8626 [file] [log] [blame]
# 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.
import("//build/config/features.gni")
import("//tools/json_to_struct/json_to_struct.gni")
if (is_android) {
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
}
static_library("search_engines") {
sources = [
"default_search_manager.cc",
"default_search_manager.h",
"keyword_table.cc",
"keyword_table.h",
"keyword_web_data_service.cc",
"keyword_web_data_service.h",
"search_engine_data_type_controller.cc",
"search_engine_data_type_controller.h",
"search_engine_type.h",
"search_engines_pref_names.cc",
"search_engines_pref_names.h",
"search_engines_switches.cc",
"search_engines_switches.h",
"search_host_to_urls_map.cc",
"search_host_to_urls_map.h",
"search_terms_data.cc",
"search_terms_data.h",
"template_url.cc",
"template_url.h",
"template_url_data.cc",
"template_url_data.h",
"template_url_data_util.cc",
"template_url_data_util.h",
"template_url_fetcher.cc",
"template_url_fetcher.h",
"template_url_id.h",
"template_url_parser.cc",
"template_url_parser.h",
"template_url_prepopulate_data.cc",
"template_url_prepopulate_data.h",
"template_url_service.cc",
"template_url_service.h",
"template_url_service_client.h",
"template_url_service_observer.h",
"util.cc",
"util.h",
]
public_deps = [
"//base",
"//components/google/core/browser",
"//components/keyed_service/core",
"//components/metrics/proto",
"//components/prefs",
"//components/sync",
"//components/webdata/common",
]
deps = [
":prepopulated_engines",
"//base:i18n",
"//components/history/core/browser",
"//components/metrics/proto",
# The search_engines target is in an include cycle with
# components/omnibox/browser. The cycle is whitelisted in the
# omnibox/browser target, but should ideally be fixed, then this
# dependency added:
#"//components/omnibox/browser",
"//components/infobars/core",
"//components/pref_registry",
"//components/rappor",
"//components/strings",
"//components/url_formatter",
"//google_apis",
"//net",
"//sql",
"//third_party/libxml",
"//ui/base",
"//ui/gfx",
"//ui/gfx/geometry",
"//url",
]
if (!is_ios) {
sources += [
"default_search_policy_handler.cc",
"default_search_policy_handler.h",
]
deps += [
"//components/policy:generated",
"//components/policy/core/browser",
]
}
}
static_library("test_support") {
testonly = true
sources = [
"search_engines_test_util.cc",
"search_engines_test_util.h",
"testing_search_terms_data.cc",
"testing_search_terms_data.h",
]
public_deps = [
":search_engines",
"//base",
"//components/sync_preferences:test_support",
"//testing/gtest",
]
}
source_set("unit_tests") {
testonly = true
sources = [
"default_search_manager_unittest.cc",
"keyword_table_unittest.cc",
"search_engine_data_type_controller_unittest.cc",
"search_host_to_urls_map_unittest.cc",
"template_url_prepopulate_data_unittest.cc",
"template_url_service_util_unittest.cc",
"template_url_unittest.cc",
]
deps = [
":prepopulated_engines",
":test_support",
"//base",
"//base/test:test_support",
"//components/google/core/browser",
"//components/pref_registry:pref_registry",
"//components/prefs",
"//components/sync:test_support_driver",
"//components/sync:test_support_model",
"//components/sync_preferences:test_support",
"//components/webdata/common",
"//net:net",
"//sql",
"//testing/gmock",
"//testing/gtest",
"//url",
]
if (!is_ios) {
sources += [ "default_search_policy_handler_unittest.cc" ]
deps += [
"//components/policy:generated",
"//components/policy/core/browser:test_support",
]
}
}
json_to_struct("prepopulated_engines") {
visibility = [ ":*" ]
source = "prepopulated_engines.json"
schema_file = "prepopulated_engines_schema.json"
namespace = "TemplateURLPrepopulateData"
}
if (is_android) {
java_cpp_enum("search_engine_type_java") {
sources = [
"search_engine_type.h",
]
}
}