1*86ee64e7SAndroid Build Coastguard Workerpackage { 2*86ee64e7SAndroid Build Coastguard Worker default_applicable_licenses: ["external_zlib_license"], 3*86ee64e7SAndroid Build Coastguard Worker} 4*86ee64e7SAndroid Build Coastguard Worker 5*86ee64e7SAndroid Build Coastguard Workerlicense { 6*86ee64e7SAndroid Build Coastguard Worker name: "external_zlib_license", 7*86ee64e7SAndroid Build Coastguard Worker visibility: [":__subpackages__"], 8*86ee64e7SAndroid Build Coastguard Worker license_kinds: [ 9*86ee64e7SAndroid Build Coastguard Worker "SPDX-license-identifier-BSD", 10*86ee64e7SAndroid Build Coastguard Worker "SPDX-license-identifier-Zlib", 11*86ee64e7SAndroid Build Coastguard Worker ], 12*86ee64e7SAndroid Build Coastguard Worker license_text: [ 13*86ee64e7SAndroid Build Coastguard Worker "LICENSE", 14*86ee64e7SAndroid Build Coastguard Worker ], 15*86ee64e7SAndroid Build Coastguard Worker} 16*86ee64e7SAndroid Build Coastguard Worker 17*86ee64e7SAndroid Build Coastguard Worker// These cflags are shared --- not only between all architectures, 18*86ee64e7SAndroid Build Coastguard Worker// but between libz and libz_stable too. 19*86ee64e7SAndroid Build Coastguard Workercflags_shared = [ 20*86ee64e7SAndroid Build Coastguard Worker // Our compiler does support hidden visibility. 21*86ee64e7SAndroid Build Coastguard Worker "-DHAVE_HIDDEN", 22*86ee64e7SAndroid Build Coastguard Worker // Our compiler does support const. 23*86ee64e7SAndroid Build Coastguard Worker "-DZLIB_CONST", 24*86ee64e7SAndroid Build Coastguard Worker // Use the traditional Rabin-Karp rolling hash to match zlib DEFLATE output exactly. 25*86ee64e7SAndroid Build Coastguard Worker "-DCHROMIUM_ZLIB_NO_CASTAGNOLI", 26*86ee64e7SAndroid Build Coastguard Worker // Enable -O3 for everyone, as chromium's BUILD.gn does. 27*86ee64e7SAndroid Build Coastguard Worker "-O3", 28*86ee64e7SAndroid Build Coastguard Worker "-Wall", 29*86ee64e7SAndroid Build Coastguard Worker "-Werror", 30*86ee64e7SAndroid Build Coastguard Worker "-Wno-deprecated-non-prototype", 31*86ee64e7SAndroid Build Coastguard Worker "-Wno-unused", 32*86ee64e7SAndroid Build Coastguard Worker "-Wno-unused-parameter", 33*86ee64e7SAndroid Build Coastguard Worker] 34*86ee64e7SAndroid Build Coastguard Worker 35*86ee64e7SAndroid Build Coastguard Workercflags_arm = [ 36*86ee64e7SAndroid Build Coastguard Worker // Even the NDK dropped non-neon support in r24. 37*86ee64e7SAndroid Build Coastguard Worker "-DADLER32_SIMD_NEON", 38*86ee64e7SAndroid Build Coastguard Worker // HWCAP_CRC32 is checked at runtime, so it's okay to enable crc32 39*86ee64e7SAndroid Build Coastguard Worker // acceleration for both 64-bit and 32-bit (which may be armv7, at 40*86ee64e7SAndroid Build Coastguard Worker // least for NDK users). 41*86ee64e7SAndroid Build Coastguard Worker "-DCRC32_ARMV8_CRC32", 42*86ee64e7SAndroid Build Coastguard Worker // TODO: DINFLATE_CHUNK_SIMD_NEON causes `atest org.apache.harmony.tests.java.util.zip.DeflaterTest` failures. 43*86ee64e7SAndroid Build Coastguard Worker // "-DINFLATE_CHUNK_SIMD_NEON", 44*86ee64e7SAndroid Build Coastguard Worker] 45*86ee64e7SAndroid Build Coastguard Workercflags_arm64 = cflags_arm + ["-DINFLATE_CHUNK_READ_64LE"] 46*86ee64e7SAndroid Build Coastguard Worker 47*86ee64e7SAndroid Build Coastguard Workercflags_riscv64 = [ 48*86ee64e7SAndroid Build Coastguard Worker "-DRISCV_RVV", 49*86ee64e7SAndroid Build Coastguard Worker "-DADLER32_SIMD_RVV", 50*86ee64e7SAndroid Build Coastguard Worker "-DDEFLATE_SLIDE_HASH_RVV", 51*86ee64e7SAndroid Build Coastguard Worker "-DINFLATE_CHUNK_GENERIC", 52*86ee64e7SAndroid Build Coastguard Worker "-DINFLATE_CHUNK_READ_64LE", 53*86ee64e7SAndroid Build Coastguard Worker] 54*86ee64e7SAndroid Build Coastguard Worker 55*86ee64e7SAndroid Build Coastguard Worker// The *host* x86 configuration (with *lower* CPU feature requirements). 56*86ee64e7SAndroid Build Coastguard Workercflags_x86 = [ 57*86ee64e7SAndroid Build Coastguard Worker // See ARMV8_OS_LINUX above. 58*86ee64e7SAndroid Build Coastguard Worker "-DX86_NOT_WINDOWS", 59*86ee64e7SAndroid Build Coastguard Worker // Android's host CPU feature requirements are *lower* than the 60*86ee64e7SAndroid Build Coastguard Worker // corresponding device CPU feature requirements, so it's easier to just 61*86ee64e7SAndroid Build Coastguard Worker // say "no SIMD for you" rather than specificially disable SSSE3. 62*86ee64e7SAndroid Build Coastguard Worker // We should have a conversation about that, but not until we at least have 63*86ee64e7SAndroid Build Coastguard Worker // data on how many Studio users have CPUs that don't make the grade... 64*86ee64e7SAndroid Build Coastguard Worker // https://issuetracker.google.com/171235570 65*86ee64e7SAndroid Build Coastguard Worker "-DCPU_NO_SIMD", 66*86ee64e7SAndroid Build Coastguard Worker] 67*86ee64e7SAndroid Build Coastguard Workercflags_x86_64 = cflags_x86 + ["-DINFLATE_CHUNK_READ_64LE"] 68*86ee64e7SAndroid Build Coastguard Worker 69*86ee64e7SAndroid Build Coastguard Worker// The additional *device* x86/x86_64 configuration. Devices have *higher* CPU 70*86ee64e7SAndroid Build Coastguard Worker// feature requirements than the host. 71*86ee64e7SAndroid Build Coastguard Workercflags_android_x86 = [ 72*86ee64e7SAndroid Build Coastguard Worker // Android's x86 and x86-64 ABIs both include SSE2 and SSSE3. 73*86ee64e7SAndroid Build Coastguard Worker "-UCPU_NO_SIMD", 74*86ee64e7SAndroid Build Coastguard Worker "-DADLER32_SIMD_SSSE3", 75*86ee64e7SAndroid Build Coastguard Worker // TODO: DINFLATE_CHUNK_SIMD_SSE2 causes `atest org.apache.harmony.tests.java.util.zip.DeflaterTest` failures. 76*86ee64e7SAndroid Build Coastguard Worker // "-DINFLATE_CHUNK_SIMD_SSE2", 77*86ee64e7SAndroid Build Coastguard Worker] 78*86ee64e7SAndroid Build Coastguard Worker 79*86ee64e7SAndroid Build Coastguard Workerlibz_srcs = [ 80*86ee64e7SAndroid Build Coastguard Worker "adler32.c", 81*86ee64e7SAndroid Build Coastguard Worker "adler32_simd.c", 82*86ee64e7SAndroid Build Coastguard Worker "compress.c", 83*86ee64e7SAndroid Build Coastguard Worker "cpu_features.c", 84*86ee64e7SAndroid Build Coastguard Worker "crc32.c", 85*86ee64e7SAndroid Build Coastguard Worker "crc32_simd.c", 86*86ee64e7SAndroid Build Coastguard Worker "crc_folding.c", 87*86ee64e7SAndroid Build Coastguard Worker "deflate.c", 88*86ee64e7SAndroid Build Coastguard Worker "gzclose.c", 89*86ee64e7SAndroid Build Coastguard Worker "gzlib.c", 90*86ee64e7SAndroid Build Coastguard Worker "gzread.c", 91*86ee64e7SAndroid Build Coastguard Worker "gzwrite.c", 92*86ee64e7SAndroid Build Coastguard Worker "infback.c", 93*86ee64e7SAndroid Build Coastguard Worker "inffast.c", 94*86ee64e7SAndroid Build Coastguard Worker "inflate.c", 95*86ee64e7SAndroid Build Coastguard Worker "inftrees.c", 96*86ee64e7SAndroid Build Coastguard Worker "trees.c", 97*86ee64e7SAndroid Build Coastguard Worker "uncompr.c", 98*86ee64e7SAndroid Build Coastguard Worker "zutil.c", 99*86ee64e7SAndroid Build Coastguard Worker 100*86ee64e7SAndroid Build Coastguard Worker // Not-yet-enabled optimizations. 101*86ee64e7SAndroid Build Coastguard Worker // See https://chromium-review.googlesource.com/749732. 102*86ee64e7SAndroid Build Coastguard Worker // TODO: causes `atest org.apache.harmony.tests.java.util.zip.DeflaterTest` failures. 103*86ee64e7SAndroid Build Coastguard Worker // "contrib/optimizations/inffast_chunk.c", 104*86ee64e7SAndroid Build Coastguard Worker // "contrib/optimizations/inflate.c", 105*86ee64e7SAndroid Build Coastguard Worker] 106*86ee64e7SAndroid Build Coastguard Worker 107*86ee64e7SAndroid Build Coastguard Workercc_defaults { 108*86ee64e7SAndroid Build Coastguard Worker name: "libz_defaults", 109*86ee64e7SAndroid Build Coastguard Worker defaults: [ 110*86ee64e7SAndroid Build Coastguard Worker "bug_24465209_workaround", 111*86ee64e7SAndroid Build Coastguard Worker ], 112*86ee64e7SAndroid Build Coastguard Worker 113*86ee64e7SAndroid Build Coastguard Worker cflags: cflags_shared, 114*86ee64e7SAndroid Build Coastguard Worker stl: "none", 115*86ee64e7SAndroid Build Coastguard Worker export_include_dirs: ["."], 116*86ee64e7SAndroid Build Coastguard Worker 117*86ee64e7SAndroid Build Coastguard Worker host_supported: true, 118*86ee64e7SAndroid Build Coastguard Worker native_bridge_supported: true, 119*86ee64e7SAndroid Build Coastguard Worker 120*86ee64e7SAndroid Build Coastguard Worker vendor_available: true, 121*86ee64e7SAndroid Build Coastguard Worker product_available: true, 122*86ee64e7SAndroid Build Coastguard Worker ramdisk_available: true, 123*86ee64e7SAndroid Build Coastguard Worker vendor_ramdisk_available: true, 124*86ee64e7SAndroid Build Coastguard Worker recovery_available: true, 125*86ee64e7SAndroid Build Coastguard Worker 126*86ee64e7SAndroid Build Coastguard Worker arch: { 127*86ee64e7SAndroid Build Coastguard Worker arm: { 128*86ee64e7SAndroid Build Coastguard Worker cflags: cflags_arm, 129*86ee64e7SAndroid Build Coastguard Worker }, 130*86ee64e7SAndroid Build Coastguard Worker arm64: { 131*86ee64e7SAndroid Build Coastguard Worker cflags: cflags_arm64, 132*86ee64e7SAndroid Build Coastguard Worker }, 133*86ee64e7SAndroid Build Coastguard Worker riscv64: { 134*86ee64e7SAndroid Build Coastguard Worker cflags: cflags_riscv64, 135*86ee64e7SAndroid Build Coastguard Worker }, 136*86ee64e7SAndroid Build Coastguard Worker x86: { 137*86ee64e7SAndroid Build Coastguard Worker cflags: cflags_x86, 138*86ee64e7SAndroid Build Coastguard Worker }, 139*86ee64e7SAndroid Build Coastguard Worker x86_64: { 140*86ee64e7SAndroid Build Coastguard Worker cflags: cflags_x86_64, 141*86ee64e7SAndroid Build Coastguard Worker }, 142*86ee64e7SAndroid Build Coastguard Worker }, 143*86ee64e7SAndroid Build Coastguard Worker target: { 144*86ee64e7SAndroid Build Coastguard Worker android_arm: { 145*86ee64e7SAndroid Build Coastguard Worker cflags: [ 146*86ee64e7SAndroid Build Coastguard Worker // Since we're building for the platform, we claim to be Linux rather than 147*86ee64e7SAndroid Build Coastguard Worker // Android so we use getauxval() directly instead of the NDK 148*86ee64e7SAndroid Build Coastguard Worker // android_getCpuFeatures which isn't available to us anyway. 149*86ee64e7SAndroid Build Coastguard Worker "-DARMV8_OS_LINUX", 150*86ee64e7SAndroid Build Coastguard Worker ], 151*86ee64e7SAndroid Build Coastguard Worker }, 152*86ee64e7SAndroid Build Coastguard Worker android_x86: { 153*86ee64e7SAndroid Build Coastguard Worker cflags: cflags_android_x86, 154*86ee64e7SAndroid Build Coastguard Worker }, 155*86ee64e7SAndroid Build Coastguard Worker android_x86_64: { 156*86ee64e7SAndroid Build Coastguard Worker cflags: cflags_android_x86, 157*86ee64e7SAndroid Build Coastguard Worker }, 158*86ee64e7SAndroid Build Coastguard Worker darwin_arm64: { 159*86ee64e7SAndroid Build Coastguard Worker cflags: [ 160*86ee64e7SAndroid Build Coastguard Worker "-DARMV8_OS_MACOS", 161*86ee64e7SAndroid Build Coastguard Worker ], 162*86ee64e7SAndroid Build Coastguard Worker }, 163*86ee64e7SAndroid Build Coastguard Worker linux_bionic: { 164*86ee64e7SAndroid Build Coastguard Worker enabled: true, 165*86ee64e7SAndroid Build Coastguard Worker }, 166*86ee64e7SAndroid Build Coastguard Worker linux_arm64: { 167*86ee64e7SAndroid Build Coastguard Worker cflags: [ 168*86ee64e7SAndroid Build Coastguard Worker // Since we're building for the platform, we claim to be Linux rather than 169*86ee64e7SAndroid Build Coastguard Worker // Android so we use getauxval() directly instead of the NDK 170*86ee64e7SAndroid Build Coastguard Worker // android_getCpuFeatures which isn't available to us anyway. 171*86ee64e7SAndroid Build Coastguard Worker "-DARMV8_OS_LINUX", 172*86ee64e7SAndroid Build Coastguard Worker ], 173*86ee64e7SAndroid Build Coastguard Worker }, 174*86ee64e7SAndroid Build Coastguard Worker windows: { 175*86ee64e7SAndroid Build Coastguard Worker enabled: true, 176*86ee64e7SAndroid Build Coastguard Worker }, 177*86ee64e7SAndroid Build Coastguard Worker }, 178*86ee64e7SAndroid Build Coastguard Worker} 179*86ee64e7SAndroid Build Coastguard Worker 180*86ee64e7SAndroid Build Coastguard Workercc_library { 181*86ee64e7SAndroid Build Coastguard Worker name: "libz", 182*86ee64e7SAndroid Build Coastguard Worker defaults: ["libz_defaults"], 183*86ee64e7SAndroid Build Coastguard Worker 184*86ee64e7SAndroid Build Coastguard Worker srcs: libz_srcs, 185*86ee64e7SAndroid Build Coastguard Worker 186*86ee64e7SAndroid Build Coastguard Worker unique_host_soname: true, 187*86ee64e7SAndroid Build Coastguard Worker static_ndk_lib: true, 188*86ee64e7SAndroid Build Coastguard Worker 189*86ee64e7SAndroid Build Coastguard Worker double_loadable: true, 190*86ee64e7SAndroid Build Coastguard Worker 191*86ee64e7SAndroid Build Coastguard Worker stubs: { 192*86ee64e7SAndroid Build Coastguard Worker versions: [ 193*86ee64e7SAndroid Build Coastguard Worker "29", 194*86ee64e7SAndroid Build Coastguard Worker "30", 195*86ee64e7SAndroid Build Coastguard Worker ], 196*86ee64e7SAndroid Build Coastguard Worker symbol_file: "libz.map.txt", 197*86ee64e7SAndroid Build Coastguard Worker }, 198*86ee64e7SAndroid Build Coastguard Worker 199*86ee64e7SAndroid Build Coastguard Worker // linker/linker64 statically link zlib. 200*86ee64e7SAndroid Build Coastguard Worker static: { 201*86ee64e7SAndroid Build Coastguard Worker apex_available: [ 202*86ee64e7SAndroid Build Coastguard Worker "com.android.runtime", 203*86ee64e7SAndroid Build Coastguard Worker ], 204*86ee64e7SAndroid Build Coastguard Worker }, 205*86ee64e7SAndroid Build Coastguard Worker 206*86ee64e7SAndroid Build Coastguard Worker // When used by Vendor/Product APEX, 207*86ee64e7SAndroid Build Coastguard Worker // libz should be treated like non-stable module. 208*86ee64e7SAndroid Build Coastguard Worker // (Hence, should be bundled in APEX). 209*86ee64e7SAndroid Build Coastguard Worker target: { 210*86ee64e7SAndroid Build Coastguard Worker product: { 211*86ee64e7SAndroid Build Coastguard Worker no_stubs: true, 212*86ee64e7SAndroid Build Coastguard Worker }, 213*86ee64e7SAndroid Build Coastguard Worker vendor: { 214*86ee64e7SAndroid Build Coastguard Worker no_stubs: true, 215*86ee64e7SAndroid Build Coastguard Worker }, 216*86ee64e7SAndroid Build Coastguard Worker }, 217*86ee64e7SAndroid Build Coastguard Worker 218*86ee64e7SAndroid Build Coastguard Worker afdo: true, 219*86ee64e7SAndroid Build Coastguard Worker} 220*86ee64e7SAndroid Build Coastguard Worker 221*86ee64e7SAndroid Build Coastguard Worker// A build of libz with identical behavior between architectures. 222*86ee64e7SAndroid Build Coastguard Worker// Used by legacy OTA tools such as imgdiff and updater and their tests. 223*86ee64e7SAndroid Build Coastguard Worker// New code should not use this library, because new code should not make 224*86ee64e7SAndroid Build Coastguard Worker// assumptions about the _compressed_ bits, beyond the fact that they will 225*86ee64e7SAndroid Build Coastguard Worker// decompress to the same input bytes. The actual compressed byte sequences 226*86ee64e7SAndroid Build Coastguard Worker// can and do differ over time. 227*86ee64e7SAndroid Build Coastguard Workercc_library { 228*86ee64e7SAndroid Build Coastguard Worker name: "libz_stable", 229*86ee64e7SAndroid Build Coastguard Worker visibility: [ 230*86ee64e7SAndroid Build Coastguard Worker "//bootable/recovery/applypatch", 231*86ee64e7SAndroid Build Coastguard Worker "//bootable/recovery/tests", 232*86ee64e7SAndroid Build Coastguard Worker "//bootable/recovery/updater", 233*86ee64e7SAndroid Build Coastguard Worker "//bootable/deprecated-ota/applypatch", 234*86ee64e7SAndroid Build Coastguard Worker "//bootable/deprecated-ota/tests", 235*86ee64e7SAndroid Build Coastguard Worker "//bootable/deprecated-ota/updater", 236*86ee64e7SAndroid Build Coastguard Worker ], 237*86ee64e7SAndroid Build Coastguard Worker // We only use the shared flags here; the whole point is that this 238*86ee64e7SAndroid Build Coastguard Worker // library behaves the same on all different architectures. 239*86ee64e7SAndroid Build Coastguard Worker cflags: cflags_shared, 240*86ee64e7SAndroid Build Coastguard Worker stl: "none", 241*86ee64e7SAndroid Build Coastguard Worker export_include_dirs: ["."], 242*86ee64e7SAndroid Build Coastguard Worker srcs: libz_srcs, 243*86ee64e7SAndroid Build Coastguard Worker host_supported: true, 244*86ee64e7SAndroid Build Coastguard Worker vendor_available: true, 245*86ee64e7SAndroid Build Coastguard Worker recovery_available: true, 246*86ee64e7SAndroid Build Coastguard Worker} 247*86ee64e7SAndroid Build Coastguard Worker 248*86ee64e7SAndroid Build Coastguard Workercc_binary { 249*86ee64e7SAndroid Build Coastguard Worker name: "zlib_bench", 250*86ee64e7SAndroid Build Coastguard Worker srcs: ["contrib/bench/zlib_bench.cc"], 251*86ee64e7SAndroid Build Coastguard Worker cflags: [ 252*86ee64e7SAndroid Build Coastguard Worker "-Wall", 253*86ee64e7SAndroid Build Coastguard Worker "-Werror", 254*86ee64e7SAndroid Build Coastguard Worker "-Wno-deprecated-non-prototype", 255*86ee64e7SAndroid Build Coastguard Worker "-Wno-unused-parameter", 256*86ee64e7SAndroid Build Coastguard Worker ], 257*86ee64e7SAndroid Build Coastguard Worker host_supported: true, 258*86ee64e7SAndroid Build Coastguard Worker shared_libs: ["libz"], 259*86ee64e7SAndroid Build Coastguard Worker // We build zlib_bench32 and zlib_bench64 so it's easy to test LP32. 260*86ee64e7SAndroid Build Coastguard Worker compile_multilib: "both", 261*86ee64e7SAndroid Build Coastguard Worker multilib: { 262*86ee64e7SAndroid Build Coastguard Worker lib32: { 263*86ee64e7SAndroid Build Coastguard Worker suffix: "32", 264*86ee64e7SAndroid Build Coastguard Worker }, 265*86ee64e7SAndroid Build Coastguard Worker lib64: { 266*86ee64e7SAndroid Build Coastguard Worker suffix: "64", 267*86ee64e7SAndroid Build Coastguard Worker }, 268*86ee64e7SAndroid Build Coastguard Worker }, 269*86ee64e7SAndroid Build Coastguard Worker} 270*86ee64e7SAndroid Build Coastguard Worker 271*86ee64e7SAndroid Build Coastguard Workercc_library { 272*86ee64e7SAndroid Build Coastguard Worker name: "zlib_google_compression_utils_portable", 273*86ee64e7SAndroid Build Coastguard Worker defaults: ["libz_defaults"], 274*86ee64e7SAndroid Build Coastguard Worker srcs: [ 275*86ee64e7SAndroid Build Coastguard Worker "google/compression_utils_portable.cc", 276*86ee64e7SAndroid Build Coastguard Worker ], 277*86ee64e7SAndroid Build Coastguard Worker export_include_dirs: ["google"], 278*86ee64e7SAndroid Build Coastguard Worker host_supported: true, 279*86ee64e7SAndroid Build Coastguard Worker shared_libs: ["libz"], 280*86ee64e7SAndroid Build Coastguard Worker sdk_version: "minimum", 281*86ee64e7SAndroid Build Coastguard Worker visibility: ["//external/angle"], 282*86ee64e7SAndroid Build Coastguard Worker apex_available: [ 283*86ee64e7SAndroid Build Coastguard Worker "com.android.runtime", 284*86ee64e7SAndroid Build Coastguard Worker "//apex_available:platform", 285*86ee64e7SAndroid Build Coastguard Worker ], 286*86ee64e7SAndroid Build Coastguard Worker} 287*86ee64e7SAndroid Build Coastguard Worker 288*86ee64e7SAndroid Build Coastguard Workercc_library_static { 289*86ee64e7SAndroid Build Coastguard Worker name: "tflite_support_libz", 290*86ee64e7SAndroid Build Coastguard Worker defaults: ["libz_defaults"], 291*86ee64e7SAndroid Build Coastguard Worker srcs: [ 292*86ee64e7SAndroid Build Coastguard Worker "contrib/minizip/ioapi.c", 293*86ee64e7SAndroid Build Coastguard Worker "contrib/minizip/unzip.c", 294*86ee64e7SAndroid Build Coastguard Worker ], 295*86ee64e7SAndroid Build Coastguard Worker sdk_version: "current", 296*86ee64e7SAndroid Build Coastguard Worker // TODO: switch this to "apex_inherit". 297*86ee64e7SAndroid Build Coastguard Worker min_sdk_version: "30", 298*86ee64e7SAndroid Build Coastguard Worker apex_available: [ 299*86ee64e7SAndroid Build Coastguard Worker "//apex_available:platform", 300*86ee64e7SAndroid Build Coastguard Worker "com.android.adservices", 301*86ee64e7SAndroid Build Coastguard Worker "com.android.extservices", 302*86ee64e7SAndroid Build Coastguard Worker ], 303*86ee64e7SAndroid Build Coastguard Worker} 304*86ee64e7SAndroid Build Coastguard Worker 305*86ee64e7SAndroid Build Coastguard Workercc_test { 306*86ee64e7SAndroid Build Coastguard Worker name: "zlib_tests", 307*86ee64e7SAndroid Build Coastguard Worker srcs: [ 308*86ee64e7SAndroid Build Coastguard Worker "contrib/tests/infcover.cc", 309*86ee64e7SAndroid Build Coastguard Worker "contrib/tests/utils_unittest.cc", 310*86ee64e7SAndroid Build Coastguard Worker ], 311*86ee64e7SAndroid Build Coastguard Worker cflags: [ 312*86ee64e7SAndroid Build Coastguard Worker "-DCMAKE_STANDALONE_UNITTESTS", 313*86ee64e7SAndroid Build Coastguard Worker "-Wno-unused-parameter", 314*86ee64e7SAndroid Build Coastguard Worker ], 315*86ee64e7SAndroid Build Coastguard Worker include_dirs: [ 316*86ee64e7SAndroid Build Coastguard Worker // These tests include "gtest.h" rather than the usual "gtest/gtest.h". 317*86ee64e7SAndroid Build Coastguard Worker "external/googletest/googletest/include/gtest/", 318*86ee64e7SAndroid Build Coastguard Worker ], 319*86ee64e7SAndroid Build Coastguard Worker shared_libs: ["libz"], 320*86ee64e7SAndroid Build Coastguard Worker static_libs: ["zlib_google_compression_utils_portable"], 321*86ee64e7SAndroid Build Coastguard Worker host_supported: true, 322*86ee64e7SAndroid Build Coastguard Worker test_suites: ["device-tests"], 323*86ee64e7SAndroid Build Coastguard Worker} 324*86ee64e7SAndroid Build Coastguard Worker 325*86ee64e7SAndroid Build Coastguard Workerndk_headers { 326*86ee64e7SAndroid Build Coastguard Worker name: "libz_headers", 327*86ee64e7SAndroid Build Coastguard Worker from: "", 328*86ee64e7SAndroid Build Coastguard Worker to: "", 329*86ee64e7SAndroid Build Coastguard Worker srcs: [ 330*86ee64e7SAndroid Build Coastguard Worker "zconf.h", 331*86ee64e7SAndroid Build Coastguard Worker "zlib.h", 332*86ee64e7SAndroid Build Coastguard Worker ], 333*86ee64e7SAndroid Build Coastguard Worker license: "LICENSE", 334*86ee64e7SAndroid Build Coastguard Worker} 335*86ee64e7SAndroid Build Coastguard Worker 336*86ee64e7SAndroid Build Coastguard Workerndk_library { 337*86ee64e7SAndroid Build Coastguard Worker name: "libz", 338*86ee64e7SAndroid Build Coastguard Worker symbol_file: "libz.map.txt", 339*86ee64e7SAndroid Build Coastguard Worker first_version: "9", 340*86ee64e7SAndroid Build Coastguard Worker unversioned_until: "current", 341*86ee64e7SAndroid Build Coastguard Worker} 342*86ee64e7SAndroid Build Coastguard Worker 343*86ee64e7SAndroid Build Coastguard Worker// Export zlib headers for inclusion in the musl sysroot. 344*86ee64e7SAndroid Build Coastguard Workergenrule { 345*86ee64e7SAndroid Build Coastguard Worker name: "libc_musl_sysroot_zlib_headers", 346*86ee64e7SAndroid Build Coastguard Worker visibility: ["//external/musl"], 347*86ee64e7SAndroid Build Coastguard Worker srcs: [ 348*86ee64e7SAndroid Build Coastguard Worker "LICENSE", 349*86ee64e7SAndroid Build Coastguard Worker "zconf.h", 350*86ee64e7SAndroid Build Coastguard Worker "zlib.h", 351*86ee64e7SAndroid Build Coastguard Worker ], 352*86ee64e7SAndroid Build Coastguard Worker out: ["libc_musl_sysroot_zlib_headers.zip"], 353*86ee64e7SAndroid Build Coastguard Worker tools: [ 354*86ee64e7SAndroid Build Coastguard Worker "soong_zip", 355*86ee64e7SAndroid Build Coastguard Worker "zip2zip", 356*86ee64e7SAndroid Build Coastguard Worker ], 357*86ee64e7SAndroid Build Coastguard Worker cmd: "$(location soong_zip) -o $(genDir)/sysroot.zip -symlinks=false" + 358*86ee64e7SAndroid Build Coastguard Worker // NOTICE 359*86ee64e7SAndroid Build Coastguard Worker " -j -f $(location LICENSE) " + 360*86ee64e7SAndroid Build Coastguard Worker // headers 361*86ee64e7SAndroid Build Coastguard Worker " -j -P include " + 362*86ee64e7SAndroid Build Coastguard Worker " -f $(location zconf.h) " + 363*86ee64e7SAndroid Build Coastguard Worker " -f $(location zlib.h) " + 364*86ee64e7SAndroid Build Coastguard Worker " && " + 365*86ee64e7SAndroid Build Coastguard Worker "$(location zip2zip) -i $(genDir)/sysroot.zip -o $(out) " + 366*86ee64e7SAndroid Build Coastguard Worker " include/**/*:include " + 367*86ee64e7SAndroid Build Coastguard Worker " LICENSE:NOTICE.zlib", 368*86ee64e7SAndroid Build Coastguard Worker} 369*86ee64e7SAndroid Build Coastguard Worker 370*86ee64e7SAndroid Build Coastguard Workercc_defaults { 371*86ee64e7SAndroid Build Coastguard Worker name: "zlib_fuzz_defaults", 372*86ee64e7SAndroid Build Coastguard Worker static_libs: ["libz"], 373*86ee64e7SAndroid Build Coastguard Worker host_supported: true, 374*86ee64e7SAndroid Build Coastguard Worker} 375*86ee64e7SAndroid Build Coastguard Worker 376*86ee64e7SAndroid Build Coastguard Workercc_fuzz { 377*86ee64e7SAndroid Build Coastguard Worker name: "zlib_deflate_fuzzer", 378*86ee64e7SAndroid Build Coastguard Worker defaults: ["zlib_fuzz_defaults"], 379*86ee64e7SAndroid Build Coastguard Worker srcs: ["contrib/tests/fuzzers/deflate_fuzzer.cc"], 380*86ee64e7SAndroid Build Coastguard Worker} 381*86ee64e7SAndroid Build Coastguard Worker 382*86ee64e7SAndroid Build Coastguard Workercc_fuzz { 383*86ee64e7SAndroid Build Coastguard Worker name: "zlib_deflate_set_dictionary_fuzzer", 384*86ee64e7SAndroid Build Coastguard Worker defaults: ["zlib_fuzz_defaults"], 385*86ee64e7SAndroid Build Coastguard Worker srcs: ["contrib/tests/fuzzers/deflate_set_dictionary_fuzzer.cc"], 386*86ee64e7SAndroid Build Coastguard Worker} 387*86ee64e7SAndroid Build Coastguard Worker 388*86ee64e7SAndroid Build Coastguard Workercc_fuzz { 389*86ee64e7SAndroid Build Coastguard Worker name: "zlib_inflate_fuzzer", 390*86ee64e7SAndroid Build Coastguard Worker defaults: ["zlib_fuzz_defaults"], 391*86ee64e7SAndroid Build Coastguard Worker srcs: ["contrib/tests/fuzzers/inflate_fuzzer.cc"], 392*86ee64e7SAndroid Build Coastguard Worker} 393*86ee64e7SAndroid Build Coastguard Worker 394*86ee64e7SAndroid Build Coastguard Workercc_fuzz { 395*86ee64e7SAndroid Build Coastguard Worker name: "zlib_inflate_with_header_fuzzer", 396*86ee64e7SAndroid Build Coastguard Worker defaults: ["zlib_fuzz_defaults"], 397*86ee64e7SAndroid Build Coastguard Worker srcs: ["contrib/tests/fuzzers/inflate_with_header_fuzzer.cc"], 398*86ee64e7SAndroid Build Coastguard Worker} 399*86ee64e7SAndroid Build Coastguard Worker 400*86ee64e7SAndroid Build Coastguard Workercc_fuzz { 401*86ee64e7SAndroid Build Coastguard Worker name: "zlib_streaming_inflate_fuzzer", 402*86ee64e7SAndroid Build Coastguard Worker defaults: ["zlib_fuzz_defaults"], 403*86ee64e7SAndroid Build Coastguard Worker srcs: ["contrib/tests/fuzzers/streaming_inflate_fuzzer.cc"], 404*86ee64e7SAndroid Build Coastguard Worker fuzz_config: { 405*86ee64e7SAndroid Build Coastguard Worker libfuzzer_options: ["max_len=256000"], 406*86ee64e7SAndroid Build Coastguard Worker }, 407*86ee64e7SAndroid Build Coastguard Worker} 408*86ee64e7SAndroid Build Coastguard Worker 409*86ee64e7SAndroid Build Coastguard Workercc_fuzz { 410*86ee64e7SAndroid Build Coastguard Worker name: "zlib_uncompress_fuzzer", 411*86ee64e7SAndroid Build Coastguard Worker defaults: ["zlib_fuzz_defaults"], 412*86ee64e7SAndroid Build Coastguard Worker srcs: ["contrib/tests/fuzzers/uncompress_fuzzer.cc"], 413*86ee64e7SAndroid Build Coastguard Worker} 414