//
// Copyright (C) 2013 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.

cc_defaults {
    name: "libziparchive_flags",
    cflags: [
        // ZLIB_CONST turns on const for input buffers, which is pretty standard.
        "-DZLIB_CONST",
        "-Werror",
        "-Wall",
        "-D_FILE_OFFSET_BITS=64",
    ],
    cppflags: [
        "-Wold-style-cast",
        // Incorrectly warns when C++11 empty brace {} initializer is used.
        // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61489
        "-Wno-missing-field-initializers",
    ],
}

cc_defaults {
    name: "libziparchive_defaults",
    srcs: [
        "zip_archive.cc",
        "zip_archive_stream_entry.cc",
        "zip_writer.cc",
    ],

    target: {
        windows: {
            cflags: ["-mno-ms-bitfields"],

            enabled: true,
        },
    },

    shared_libs: [
        "libbase",
        "liblog",
    ],
}

cc_library {
    name: "libziparchive",
    host_supported: true,
    vendor_available: true,

    defaults: [
        "libziparchive_defaults",
        "libziparchive_flags",
    ],
    shared_libs: [
        "liblog",
        "libbase",
    ],
    export_include_dirs: ["include"],
    target: {
        android: {
            shared_libs: [
                "libz",
                "libutils",
            ],
        },
        host: {
            static_libs: ["libutils"],
        },
        linux_bionic: {
            static_libs: ["libz"],
            enabled: true,
        },
        linux: {
            shared_libs: ["libz-host"],
        },
        darwin: {
            shared_libs: ["libz-host"],
        },
        windows: {
            shared_libs: ["libz-host"],
        },
    },
}

// Also provide libziparchive-host until everything is switched over to using libziparchive
cc_library {
    name: "libziparchive-host",
    host_supported: true,
    device_supported: false,
    defaults: [
        "libziparchive_defaults",
        "libziparchive_flags",
    ],
    shared_libs: ["libz-host"],
    static_libs: ["libutils"],
}

// Tests.
cc_test {
    name: "ziparchive-tests",
    host_supported: true,
    defaults: ["libziparchive_flags"],

    srcs: [
        "entry_name_utils_test.cc",
        "zip_archive_test.cc",
        "zip_writer_test.cc",
    ],
    shared_libs: [
        "libbase",
        "liblog",
    ],

    static_libs: [
        "libziparchive",
        "libz",
        "libutils",
    ],

    target: {
        host: {
            cppflags: ["-Wno-unnamed-type-template-args"],
        },
        windows: {
            enabled: true,
        },
    },
}

// Performance benchmarks.
cc_benchmark {
    name: "ziparchive-benchmarks",
    defaults: ["libziparchive_flags"],

    srcs: [
        "zip_archive_benchmark.cpp",
    ],
    shared_libs: [
        "libbase",
        "liblog",
    ],

    static_libs: [
        "libziparchive",
        "libz",
        "libutils",
    ],

    target: {
        host: {
            cppflags: ["-Wno-unnamed-type-template-args"],
        },
    },
}

cc_binary {
    name: "unzip",
    defaults: ["libziparchive_flags"],
    srcs: ["unzip.cpp"],
    shared_libs: [
        "libbase",
        "libziparchive",
    ],
}
