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

import("//build/config/linux/pkg_config.gni")

pkg_config("system_libxml") {
  packages = [ "libxml-2.0" ]
}

source_set("libxml") {
  public_configs = [ ":system_libxml" ]
}

static_library("libxml_utils") {
  # Do not expand this visibility list without first consulting with the
  # Security Team.
  visibility = [
    ":xml_reader",
    ":xml_writer",
    "//base/test:test_support",
    "//services/data_decoder:xml_parser_fuzzer",
  ]
  sources = [
    "chromium/libxml_utils.cc",
    "chromium/libxml_utils.h",
  ]
  public_configs = [ ":system_libxml" ]
}

static_library("xml_reader") {
  # Do not expand this visibility list without first consulting with the
  # Security Team.
  visibility = [
    "//base/test:test_support",
    "//components/policy/core/common:unit_tests",
    "//services/data_decoder:*",
    "//tools/traffic_annotation/auditor:auditor_sources",
  ]
  sources = [
    "chromium/xml_reader.cc",
    "chromium/xml_reader.h",
  ]
  deps = [ ":libxml_utils" ]
}

static_library("xml_writer") {
  # The XmlWriter is considered safe to use from any target.
  visibility = [ "*" ]
  sources = [
    "chromium/xml_writer.cc",
    "chromium/xml_writer.h",
  ]
  deps = [ ":libxml_utils" ]
}
