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

component("url_matcher") {
  sources = [
    "regex_set_matcher.cc",
    "regex_set_matcher.h",
    "string_pattern.cc",
    "string_pattern.h",
    "substring_set_matcher.cc",
    "substring_set_matcher.h",
    "url_matcher.cc",
    "url_matcher.h",
    "url_matcher_constants.cc",
    "url_matcher_constants.h",
    "url_matcher_export.h",
    "url_matcher_factory.cc",
    "url_matcher_factory.h",
    "url_matcher_helpers.cc",
    "url_matcher_helpers.h",
  ]

  defines = [ "URL_MATCHER_IMPLEMENTATION" ]

  public_deps = [
    "//base",
    "//base/third_party/dynamic_annotations",
    "//third_party/re2",
    "//url",
  ]

  configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "regex_set_matcher_unittest.cc",
    "string_pattern_unittest.cc",
    "substring_set_matcher_unittest.cc",
    "url_matcher_factory_unittest.cc",
    "url_matcher_unittest.cc",
  ]
  deps = [
    ":url_matcher",
    "//testing/gtest",
  ]
}
