//
// Copyright (C) 2014 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

//
// To update:
//

//  git merge aosp/upstream-master
//  mma -j
//  # (Make any necessary Android.bp changes and test the new libxml2.)
//  git push aosp HEAD:master  # Push directly, avoiding gerrit.
//  git push aosp HEAD:refs/for/master  # Push to gerrit.
//
//  # Now commit any necessary Android.bp changes like normal:
//  repo start post-sync .
//  git commit -a
//

// This comes from the automake-generated Makefile.
// We deliberately exclude nanoftp.c and nanohttp.c, the trio library, and zlib.
cc_library {
    name: "libxml2",
    vendor_available: true,
    vndk: {
        enabled: true,
    },
    host_supported: true,
    srcs: [
        "SAX.c",
        "entities.c",
        "encoding.c",
        "error.c",
        "parserInternals.c",
        "parser.c",
        "tree.c",
        "hash.c",
        "list.c",
        "xmlIO.c",
        "xmlmemory.c",
        "uri.c",
        "valid.c",
        "xlink.c",
        "debugXML.c",
        "xpath.c",
        "xpointer.c",
        "xinclude.c",
        "DOCBparser.c",
        "catalog.c",
        "globals.c",
        "threads.c",
        "c14n.c",
        "xmlstring.c",
        "buf.c",
        "xmlregexp.c",
        "xmlschemas.c",
        "xmlschemastypes.c",
        "xmlunicode.c",
        "xmlreader.c",
        "relaxng.c",
        "dict.c",
        "SAX2.c",
        "xmlwriter.c",
        "legacy.c",
        "chvalid.c",
        "pattern.c",
        "xmlsave.c",
        "xmlmodule.c",
        "schematron.c",
    ],
    export_include_dirs: ["include"],
    cflags: [
        "-DLIBXML_THREAD_ENABLED=1",

        "-Wall",
        "-Werror",
        "-Wno-error=ignored-attributes",
        "-Wno-missing-field-initializers",
        "-Wno-self-assign",
        "-Wno-sign-compare",
        "-Wno-tautological-pointer-compare",
        "-Wno-unused-function",
        "-Wno-unused-parameter",
    ],
    static: {
        cflags: ["-fvisibility=hidden"],
    },
    target: {
        vendor: {
            exclude_shared_libs: ["libicuuc"],
        },
    },
    shared_libs: ["libicuuc"],
    export_shared_lib_headers: ["libicuuc"],
}

cc_binary_host {
    name: "xmllint",
    srcs: ["xmllint.c"],
    cflags: [
        "-DLIBXML_THREAD_ENABLED=1",

        "-Wall",
        "-Werror",
    ],
    shared_libs: ["libxml2"],
}