libziparchive is explicitly marked as double_loadable since it is one of the
(indirect) dependencies of the LLNDK library libvulkan
and at the same time the lib itself is marked as VNDK. Such lib can be
double loaded inside a vendor process.
Note: even without this change, the library is already capable of being
double loaded due to the dependency graph around it. This change is to
make it explicit so that double loading of a library is carefully
tracked and signed-off by the owner of the lib.
Bug: 77155589
Test: m -j
Merged-In: Id0a731d553bbb68b84bca421500c94b7b35eca14
Change-Id: Id0a731d553bbb68b84bca421500c94b7b35eca14
(cherry picked from commit 730728cbb4)
156 lines
3.1 KiB
Text
156 lines
3.1 KiB
Text
//
|
|
// 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,
|
|
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"],
|
|
|
|
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",
|
|
],
|
|
}
|