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

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

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",
  ]

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

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

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

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

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