1// 2// Copyright (C) 2013 The Android Open Source Project 3// 4// Licensed under the Apache License, Version 2.0 (the "License"); 5// you may not use this file except in compliance with the License. 6// You may obtain a copy of the License at 7// 8// http://www.apache.org/licenses/LICENSE-2.0 9// 10// Unless required by applicable law or agreed to in writing, software 11// distributed under the License is distributed on an "AS IS" BASIS, 12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13// See the License for the specific language governing permissions and 14// limitations under the License. 15 16cc_defaults { 17 name: "libziparchive_flags", 18 cflags: [ 19 // ZLIB_CONST turns on const for input buffers, which is pretty standard. 20 "-DZLIB_CONST", 21 "-Werror", 22 "-Wall", 23 "-D_FILE_OFFSET_BITS=64", 24 ], 25 cppflags: [ 26 "-Wold-style-cast", 27 // Incorrectly warns when C++11 empty brace {} initializer is used. 28 // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61489 29 "-Wno-missing-field-initializers", 30 ], 31} 32 33cc_defaults { 34 name: "libziparchive_defaults", 35 srcs: [ 36 "zip_archive.cc", 37 "zip_archive_stream_entry.cc", 38 "zip_writer.cc", 39 ], 40 41 target: { 42 windows: { 43 cflags: ["-mno-ms-bitfields"], 44 45 enabled: true, 46 }, 47 }, 48 49 shared_libs: [ 50 "libbase", 51 "liblog", 52 ], 53 54 export_include_dirs: ["include"], 55} 56 57cc_library { 58 name: "libziparchive", 59 host_supported: true, 60 vendor_available: true, 61 vndk: { 62 enabled: true, 63 }, 64 65 defaults: [ 66 "libziparchive_defaults", 67 "libziparchive_flags", 68 ], 69 shared_libs: [ 70 "liblog", 71 "libbase", 72 ], 73 target: { 74 android: { 75 shared_libs: [ 76 "libz", 77 "libutils", 78 ], 79 }, 80 host: { 81 static_libs: ["libutils"], 82 }, 83 linux_bionic: { 84 static_libs: ["libz"], 85 enabled: true, 86 }, 87 linux: { 88 shared_libs: ["libz-host"], 89 }, 90 darwin: { 91 shared_libs: ["libz-host"], 92 }, 93 windows: { 94 shared_libs: ["libz-host"], 95 }, 96 }, 97} 98 99// Also provide libziparchive-host until everything is switched over to using libziparchive 100cc_library { 101 name: "libziparchive-host", 102 host_supported: true, 103 device_supported: false, 104 defaults: [ 105 "libziparchive_defaults", 106 "libziparchive_flags", 107 ], 108 shared_libs: ["libz-host"], 109 static_libs: ["libutils"], 110} 111 112// Tests. 113cc_test { 114 name: "ziparchive-tests", 115 host_supported: true, 116 defaults: ["libziparchive_flags"], 117 118 srcs: [ 119 "entry_name_utils_test.cc", 120 "zip_archive_test.cc", 121 "zip_writer_test.cc", 122 ], 123 shared_libs: [ 124 "libbase", 125 "liblog", 126 ], 127 128 static_libs: [ 129 "libziparchive", 130 "libz", 131 "libutils", 132 ], 133 134 target: { 135 host: { 136 cppflags: ["-Wno-unnamed-type-template-args"], 137 }, 138 windows: { 139 enabled: true, 140 }, 141 }, 142} 143 144// Performance benchmarks. 145cc_benchmark { 146 name: "ziparchive-benchmarks", 147 defaults: ["libziparchive_flags"], 148 149 srcs: [ 150 "zip_archive_benchmark.cpp", 151 ], 152 shared_libs: [ 153 "libbase", 154 "liblog", 155 ], 156 157 static_libs: [ 158 "libziparchive", 159 "libz", 160 "libutils", 161 ], 162 163 target: { 164 host: { 165 cppflags: ["-Wno-unnamed-type-template-args"], 166 }, 167 }, 168} 169 170cc_binary { 171 name: "unzip", 172 defaults: ["libziparchive_flags"], 173 srcs: ["unzip.cpp"], 174 shared_libs: [ 175 "libbase", 176 "libziparchive", 177 ], 178} 179