// Copyright (C) 2010 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. // libandroidfw is partially built for the host (used by obbtool, aapt, and others) package { default_applicable_licenses: ["frameworks_base_libs_androidfw_license"], } // Added automatically by a large-scale-change // See: http://go/android-license-faq license { name: "frameworks_base_libs_androidfw_license", visibility: [":__subpackages__"], license_kinds: [ "SPDX-license-identifier-Apache-2.0", ], license_text: [ "NOTICE", ], } cc_defaults { name: "libandroidfw_defaults", cpp_std: "gnu++2b", cflags: [ "-Werror", "-Wunreachable-code", ], target: { windows: { // The Windows compiler warns incorrectly for value initialization with {}. cppflags: ["-Wno-missing-field-initializers"], }, host: { cflags: ["-DSTATIC_ANDROIDFW_FOR_TOOLS"], }, }, } cc_library { name: "libandroidfw", defaults: ["libandroidfw_defaults"], host_supported: true, srcs: [ "ApkAssets.cpp", "ApkParsing.cpp", "Asset.cpp", "AssetDir.cpp", "AssetManager.cpp", "AssetManager2.cpp", "AssetsProvider.cpp", "AttributeResolution.cpp", "BigBuffer.cpp", "ChunkIterator.cpp", "ConfigDescription.cpp", "Idmap.cpp", "LoadedArsc.cpp", "Locale.cpp", "LocaleData.cpp", "misc.cpp", "ObbFile.cpp", "PosixUtils.cpp", "ResourceTimer.cpp", "ResourceTypes.cpp", "ResourceUtils.cpp", "StreamingZipInflater.cpp", "StringPool.cpp", "TypeWrappers.cpp", "Util.cpp", "ZipFileRO.cpp", "ZipUtils.cpp", ], export_include_dirs: ["include"], export_shared_lib_headers: ["libz"], static_libs: ["libincfs-utils"], whole_static_libs: ["libincfs-utils"], export_static_lib_headers: ["libincfs-utils"], target: { android: { srcs: [ "BackupData.cpp", "BackupHelpers.cpp", "CursorWindow.cpp", ], shared_libs: [ "libbase", "libbinder", "liblog", "libcutils", "libincfs", "libutils", "libz", ], static_libs: ["libziparchive_for_incfs"], static: { enabled: false, }, }, host: { shared: { enabled: false, }, static_libs: [ "libbase", "libcutils", "liblog", "libutils", "libziparchive", ], shared_libs: [ "libz", ], }, host_linux: { srcs: [ "CursorWindow.cpp", ], }, windows: { enabled: true, }, }, sanitize: { blocklist: "libandroidfw_blocklist.txt", }, } common_test_libs = [ "libandroidfw", "libbase", "libcutils", "libutils", "libziparchive", ] cc_test { name: "libandroidfw_tests", host_supported: true, defaults: ["libandroidfw_defaults"], cppflags: [ // This is to suppress warnings/errors from gtest "-Wno-unnamed-type-template-args", ], srcs: [ // Helpers/infra for testing. "tests/CommonHelpers.cpp", "tests/TestHelpers.cpp", "tests/TestMain.cpp", // Actual tests. "tests/ApkAssets_test.cpp", "tests/ApkParsing_test.cpp", "tests/AppAsLib_test.cpp", "tests/Asset_test.cpp", "tests/AssetManager2_test.cpp", "tests/AttributeFinder_test.cpp", "tests/AttributeResolution_test.cpp", "tests/BigBuffer_test.cpp", "tests/ByteBucketArray_test.cpp", "tests/Config_test.cpp", "tests/ConfigDescription_test.cpp", "tests/ConfigLocale_test.cpp", "tests/DynamicRefTable_test.cpp", "tests/Idmap_test.cpp", "tests/LoadedArsc_test.cpp", "tests/Locale_test.cpp", "tests/ResourceTimer_test.cpp", "tests/ResourceUtils_test.cpp", "tests/ResTable_test.cpp", "tests/Split_test.cpp", "tests/StringPiece_test.cpp", "tests/StringPool_test.cpp", "tests/Theme_test.cpp", "tests/TypeWrappers_test.cpp", "tests/ZipUtils_test.cpp", ], static_libs: ["libgmock"], target: { android: { srcs: [ "tests/BackupData_test.cpp", "tests/BackupHelpers_test.cpp", "tests/CursorWindow_test.cpp", "tests/ObbFile_test.cpp", "tests/PosixUtils_test.cpp", ], shared_libs: common_test_libs + [ "libbinder", "liblog", "libui", ], }, host: { static_libs: common_test_libs + [ "liblog", "libz", ], }, }, data: [ "tests/data/**/*.apk", "tests/data/**/*.arsc", "tests/data/**/*.idmap", ":FrameworkResourcesSparseTestApp", ":FrameworkResourcesNotSparseTestApp", ], test_suites: ["device-tests"], } cc_benchmark { name: "libandroidfw_benchmarks", defaults: ["libandroidfw_defaults"], srcs: [ // Helpers/infra for benchmarking. "tests/BenchMain.cpp", "tests/BenchmarkHelpers.cpp", "tests/CommonHelpers.cpp", // Actual benchmarks. "tests/AssetManager2_bench.cpp", "tests/AttributeResolution_bench.cpp", "tests/CursorWindow_bench.cpp", "tests/SparseEntry_bench.cpp", "tests/Theme_bench.cpp", ], shared_libs: common_test_libs, data: ["tests/data/**/*.apk"], } cc_library { name: "libandroidfw_fuzzer_lib", defaults: ["libandroidfw_defaults"], host_supported: true, srcs: [ "CursorWindow.cpp", ], export_include_dirs: ["include"], target: { android: { shared_libs: common_test_libs + [ "libbinder", "liblog", ], }, host: { static_libs: common_test_libs + [ "libbinder", "liblog", ], }, darwin: { // libbinder is not supported on mac enabled: false, }, }, }