# Copyright (c) 2013 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.

# Define an "os_include" variable that points at the OS-specific generated
# headers.  These were generated by running the configure script offline.
if (is_linux || is_android || is_nacl || is_fuchsia) {
  os_include = "linux"
} else if (is_mac || is_ios) {
  os_include = "mac"
} else if (is_win) {
  os_include = "win32"
}

import("//third_party/libxml/libxml_visibility.gni")

config("libxml_config") {
  # Define LIBXML_STATIC as nothing to match how libxml.h (an internal header)
  # defines LIBXML_STATIC, otherwise we get the macro redefined warning from
  # GCC. ("defines" does "-DFOO" which defines the macro FOO as 1.)
  cflags = [ "-DLIBXML_STATIC=" ]

  include_dirs = [
    "src/include",
    "$os_include/include",
  ]
}

config("libxml_warnings") {
  if (is_win) {
    cflags_c = [
      "/wd4018",  # Signed/unsigned mismatch in comparison.
      "/wd4267",  # TODO(brucedawson): http://crbug.com/554200 fix C4267
      "/wd4311",  # and C4311 warnings.
    ]
  }
  if (is_clang) {
    cflags = [
      # libxml passes `const unsigned char*` through `const char*`.
      "-Wno-pointer-sign",

      # pattern.c and uri.c both have an intentional `for (...);` /
      # `while(...);` loop. I submitted a patch to move the `'` to its own
      # line, but until that's landed suppress the warning:
      "-Wno-empty-body",

      # debugXML.c compares array 'arg' to NULL.
      "-Wno-tautological-pointer-compare",

      # threads.c attempts to forward declare a pthread_equal which doesn't
      # match the prototype in pthreads.h
      "-Wno-ignored-attributes",

      # libxml casts from int to long to void*.
      "-Wno-int-to-void-pointer-cast",

      # libxml passes a volatile LPCRITICAL_SECTION* to a function expecting
      # a void* volatile*.
      "-Wno-incompatible-pointer-types",

      # trio_is_special_quantity and trio_is_negative are only
      # used with certain preprocessor defines set.
      "-Wno-unused-function",

      # Comparison between xmlElementType and xmlXPathTypeVal.
      # TODO(hans): See if we can fix upstream (http://crbug.com/763944).
      "-Wno-enum-compare",
    ]
  } else if (is_linux) {
    cflags = [
      # gcc spits out a bunch of warnings about passing too many arguments to
      # __xmlSimpleError.
      "-Wno-format-extra-args",
    ]
  }
}

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",
  ]
  if (is_win) {
    visibility += [ "//components/wifi" ]
  }
  sources = [
    "chromium/xml_reader.cc",
    "chromium/xml_reader.h",
  ]
  deps = [
    ":libxml",
    ":libxml_utils",
  ]
  configs += [ ":libxml_config" ]
}

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",
    ":libxml_utils",
  ]
  configs += [ ":libxml_config" ]
}

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",
  ]
  deps = [ ":libxml" ]
  public_deps = [ "//third_party/icu:icuuc" ]
  public_configs = [ ":libxml_config" ]
}

static_library("libxml") {
  # Do not expand this visibility list without first consulting with the
  # Security Team.
  visibility = [
    ":xml_reader",
    ":xml_writer",
    ":libxml_utils",
    "//testing/libfuzzer/*",
    "//third_party/blink/renderer/*",
    "//third_party/fontconfig",
    "//third_party/libxslt",
  ]
  if (is_ios) {
    foreach(tgt, ios_libxml_visibility_additions) {
      visibility += [ "//ios_internal/$tgt" ]
    }
  }

  output_name = "libxml2"

  # Commented out sources are libxml2 files we do not want to include. They are
  # here to make it easy to identify files which are new.
  sources = [
    "linux/config.h",
    "linux/include/libxml/xmlversion.h",
    "mac/config.h",
    "mac/include/libxml/xmlversion.h",

    #"src/DOCBparser.c",
    "src/HTMLparser.c",
    "src/HTMLtree.c",

    #"src/SAX.c",
    "src/SAX2.c",
    "src/buf.c",
    "src/buf.h",

    #"src/c14n.c",
    #"src/catalog.c",
    "src/chvalid.c",

    #"src/debugXML.c",
    "src/dict.c",
    "src/elfgcchack.h",
    "src/enc.h",
    "src/encoding.c",
    "src/entities.c",
    "src/error.c",
    "src/globals.c",
    "src/hash.c",
    "src/include/libxml/DOCBparser.h",
    "src/include/libxml/HTMLparser.h",
    "src/include/libxml/HTMLtree.h",
    "src/include/libxml/SAX.h",
    "src/include/libxml/SAX2.h",
    "src/include/libxml/c14n.h",
    "src/include/libxml/catalog.h",
    "src/include/libxml/chvalid.h",
    "src/include/libxml/debugXML.h",
    "src/include/libxml/dict.h",
    "src/include/libxml/encoding.h",
    "src/include/libxml/entities.h",
    "src/include/libxml/globals.h",
    "src/include/libxml/hash.h",
    "src/include/libxml/list.h",
    "src/include/libxml/nanoftp.h",
    "src/include/libxml/nanohttp.h",
    "src/include/libxml/parser.h",
    "src/include/libxml/parserInternals.h",
    "src/include/libxml/pattern.h",
    "src/include/libxml/relaxng.h",
    "src/include/libxml/schemasInternals.h",
    "src/include/libxml/schematron.h",
    "src/include/libxml/threads.h",
    "src/include/libxml/tree.h",
    "src/include/libxml/uri.h",
    "src/include/libxml/valid.h",
    "src/include/libxml/xinclude.h",
    "src/include/libxml/xlink.h",
    "src/include/libxml/xmlIO.h",
    "src/include/libxml/xmlautomata.h",
    "src/include/libxml/xmlerror.h",
    "src/include/libxml/xmlexports.h",
    "src/include/libxml/xmlmemory.h",
    "src/include/libxml/xmlmodule.h",
    "src/include/libxml/xmlreader.h",
    "src/include/libxml/xmlregexp.h",
    "src/include/libxml/xmlsave.h",
    "src/include/libxml/xmlschemas.h",
    "src/include/libxml/xmlschemastypes.h",
    "src/include/libxml/xmlstring.h",
    "src/include/libxml/xmlunicode.h",
    "src/include/libxml/xmlwriter.h",
    "src/include/libxml/xpath.h",
    "src/include/libxml/xpathInternals.h",
    "src/include/libxml/xpointer.h",
    "src/include/win32config.h",
    "src/include/wsockcompat.h",

    #"src/legacy.c",
    "src/libxml.h",
    "src/list.c",
    "src/parser.c",
    "src/parserInternals.c",
    "src/pattern.c",

    #"src/relaxng.c",
    "src/save.h",

    #"src/schematron.c",
    "src/threads.c",
    "src/timsort.h",
    "src/tree.c",
    "src/triodef.h",
    "src/trionan.h",

    #"src/trio.c",
    #"src/trio.h",
    #"src/triodef.h",
    # Note: xpath.c #includes trionan.c
    #"src/trionan.c",
    #"src/triop.h",
    #"src/triostr.c",
    #"src/triostr.h",
    "src/uri.c",
    "src/valid.c",

    #"src/xinclude.c",
    #"src/xlink.c",
    "src/xmlIO.c",
    "src/xmlmemory.c",

    #"src/xmlmodule.c",
    "src/xmlreader.c",

    #"src/xmlregexp.c",
    "src/xmlsave.c",

    #"src/xmlschemas.c",
    #"src/xmlschemastypes.c",
    "src/xmlstring.c",
    "src/xmlunicode.c",
    "src/xmlwriter.c",
    "src/xpath.c",

    #"src/xpointer.c",
    #"src/xzlib.c",
    "src/xzlib.h",
    "win32/config.h",
    "win32/include/libxml/xmlversion.h",
  ]

  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [
    "//build/config/compiler:no_chromium_code",

    # Must be after no_chromium_code for warning flags to be ordered correctly.
    ":libxml_warnings",
  ]

  if (is_win) {
    # libxml2 already defines WIN32_LEAN_AND_MEAN.
    configs -= [ "//build/config/win:lean_and_mean" ]
  }

  public_configs = [ ":libxml_config" ]
  public_deps = [ "//third_party/icu:icuuc" ]
  deps = [ "//third_party/zlib" ]

  if (is_mac || is_ios || is_android || is_fuchsia) {
    # http://www.xmlsoft.org/threads.html says that this is required when using
    # libxml from several threads, which can possibly happen in chrome. On
    # linux, this is picked up by transitivity from pkg-config output from
    # build/linux/system.gyp.
    defines = [ "_REENTRANT" ]
  }

  include_dirs = [ "$os_include" ]
}
