# Copyright 2015 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/jumbo.gni")

if (is_android) {
  import("//build/config/android/rules.gni")
}

jumbo_static_library("url_formatter") {
  sources = [
    "elide_url.cc",
    "elide_url.h",
    "idn_spoof_checker.cc",
    "idn_spoof_checker.h",
    "url_fixer.cc",
    "url_fixer.h",
    "url_formatter.cc",
    "url_formatter.h",
    "url_formatter_android.cc",
  ]

  configs += [
    # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
    "//build/config/compiler:no_size_t_to_int_warning",

    "//build/config/compiler:noshadowing",
  ]

  deps = [
    "//base",
    "//base:i18n",
    "//components/url_formatter/top_domains:common",
    "//components/url_formatter/top_domains:generate_top_domains_trie",
    "//net",
    "//net:preload_decoder",
    "//third_party/icu",
    "//ui/gfx",
    "//url",
  ]

  if (is_android) {
    deps += [ "android:jni_headers" ]
  }
}

jumbo_source_set("unit_tests") {
  testonly = true
  sources = [
    "elide_url_unittest.cc",
    "url_fixer_unittest.cc",
    "url_formatter_unittest.cc",
  ]

  deps = [
    ":url_formatter",
    "//base",
    "//base/test:test_support",
    "//components/url_formatter/top_domains:generate_top_domains_test_trie",
    "//net",
    "//net:preload_decoder",
    "//testing/gtest",
    "//ui/gfx",
    "//url",
  ]
}
