summaryrefslogblamecommitdiffstats
blob: 2606aa9e38234505f1141d67a08f8a97243c8ca3 (plain) (tree)





















                                                                                 
                                 




























                                                                           

                                     

 


                          
                           
                             


                      
                          
 






                                 
               
      

                  
                          

                           


                                      
          
                       

                          


      





                                      



                        
























                                                          

























                                                          









                                      
//
// 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",
    ],

    export_include_dirs: ["include"],
}

cc_library {
    name: "libziparchive",
    host_supported: true,
    vendor_available: true,
    recovery_available: true,
    vndk: {
        enabled: true,
    },
    double_loadable: true,

    defaults: [
        "libziparchive_defaults",
        "libziparchive_flags",
    ],
    shared_libs: [
        "liblog",
        "libbase",
        "libz",
    ],
    target: {
        android: {
            shared_libs: [
                "libutils",
            ],
        },
        host: {
            static_libs: ["libutils"],
        },
        linux_bionic: {
            enabled: true,
        },
    },
}

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

    data: [
        "testdata/**/*",
    ],

    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",
    ],
}