blob: 47a7f3579764be7bc405c1d3aea9a9909fcdd83b [file] [log] [blame]
Colin Cross4f8d9e62016-12-01 15:55:00 -08001// Copyright (C) 2010 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// libandroidfw is partially built for the host (used by obbtool, aapt, and others)
16
Bob Badour8a6a2bc2021-02-12 17:07:05 -080017package {
18 default_applicable_licenses: ["frameworks_base_libs_androidfw_license"],
19}
20
21// Added automatically by a large-scale-change
22// See: http://go/android-license-faq
23license {
24 name: "frameworks_base_libs_androidfw_license",
25 visibility: [":__subpackages__"],
26 license_kinds: [
27 "SPDX-license-identifier-Apache-2.0",
28 ],
29 license_text: [
30 "NOTICE",
31 ],
32}
33
Adam Lesinski873ef0e2017-10-11 16:50:37 -070034cc_defaults {
35 name: "libandroidfw_defaults",
Yurii Zubrytskyiba6f8a32022-02-16 17:00:42 -080036 cpp_std: "gnu++2b",
Colin Cross4f8d9e62016-12-01 15:55:00 -080037 cflags: [
Colin Cross4f8d9e62016-12-01 15:55:00 -080038 "-Werror",
Colin Cross4f8d9e62016-12-01 15:55:00 -080039 "-Wunreachable-code",
40 ],
Adam Lesinski873ef0e2017-10-11 16:50:37 -070041 target: {
42 windows: {
43 // The Windows compiler warns incorrectly for value initialization with {}.
44 cppflags: ["-Wno-missing-field-initializers"],
45 },
46 host: {
47 cflags: ["-DSTATIC_ANDROIDFW_FOR_TOOLS"],
48 },
49 },
50}
51
52cc_library {
53 name: "libandroidfw",
54 defaults: ["libandroidfw_defaults"],
55 host_supported: true,
Colin Cross4f8d9e62016-12-01 15:55:00 -080056 srcs: [
Adam Lesinski7ad11102016-10-28 16:39:15 -070057 "ApkAssets.cpp",
Jeremy Meyer5fd34ea2022-12-15 18:43:36 +000058 "ApkParsing.cpp",
Colin Cross4f8d9e62016-12-01 15:55:00 -080059 "Asset.cpp",
60 "AssetDir.cpp",
61 "AssetManager.cpp",
Adam Lesinski7ad11102016-10-28 16:39:15 -070062 "AssetManager2.cpp",
Ryan Mitchell1a48fa62021-01-10 08:36:36 -080063 "AssetsProvider.cpp",
Colin Cross4f8d9e62016-12-01 15:55:00 -080064 "AttributeResolution.cpp",
Jeremy Meyer56f36e82022-05-20 20:35:42 +000065 "BigBuffer.cpp",
Adam Lesinski7ad11102016-10-28 16:39:15 -070066 "ChunkIterator.cpp",
Mårten Kongstad24c9aa62018-06-20 08:46:41 +020067 "ConfigDescription.cpp",
Adam Lesinski970bd8d2017-09-25 13:21:55 -070068 "Idmap.cpp",
Adam Lesinski7ad11102016-10-28 16:39:15 -070069 "LoadedArsc.cpp",
Mårten Kongstad24c9aa62018-06-20 08:46:41 +020070 "Locale.cpp",
Colin Cross4f8d9e62016-12-01 15:55:00 -080071 "LocaleData.cpp",
72 "misc.cpp",
73 "ObbFile.cpp",
Mårten Kongstad2503a492018-09-27 13:32:30 +020074 "PosixUtils.cpp",
Lee Shombert3e4d9f22022-09-18 18:02:31 -070075 "ResourceTimer.cpp",
Colin Cross4f8d9e62016-12-01 15:55:00 -080076 "ResourceTypes.cpp",
Adam Lesinski929d6512017-01-16 19:11:19 -080077 "ResourceUtils.cpp",
Colin Cross4f8d9e62016-12-01 15:55:00 -080078 "StreamingZipInflater.cpp",
Jeremy Meyer56f36e82022-05-20 20:35:42 +000079 "StringPool.cpp",
Colin Cross4f8d9e62016-12-01 15:55:00 -080080 "TypeWrappers.cpp",
Adam Lesinskida431a22016-12-29 16:08:16 -050081 "Util.cpp",
Colin Cross4f8d9e62016-12-01 15:55:00 -080082 "ZipFileRO.cpp",
83 "ZipUtils.cpp",
84 ],
85 export_include_dirs: ["include"],
Dan Willemsen4888b1f2018-05-09 20:30:33 -070086 export_shared_lib_headers: ["libz"],
Ryan Mitchelldb21f09a2020-11-16 23:08:18 +000087 static_libs: ["libincfs-utils"],
Tomasz Wasilczyk804e8192023-08-23 02:22:53 +000088 whole_static_libs: [
89 "libandroidfw_pathutils",
90 "libincfs-utils",
91 ],
Ryan Mitchelldb21f09a2020-11-16 23:08:18 +000092 export_static_lib_headers: ["libincfs-utils"],
Colin Cross4f8d9e62016-12-01 15:55:00 -080093 target: {
94 android: {
95 srcs: [
96 "BackupData.cpp",
97 "BackupHelpers.cpp",
98 "CursorWindow.cpp",
Colin Cross4f8d9e62016-12-01 15:55:00 -080099 ],
100 shared_libs: [
Colin Cross4f8d9e62016-12-01 15:55:00 -0800101 "libbase",
102 "libbinder",
103 "liblog",
104 "libcutils",
Ryan Mitchelldb21f09a2020-11-16 23:08:18 +0000105 "libincfs",
Colin Cross4f8d9e62016-12-01 15:55:00 -0800106 "libutils",
107 "libz",
108 ],
Yurii Zubrytskyi80d0f4c2021-02-26 03:53:04 -0500109 static_libs: ["libziparchive_for_incfs"],
Colin Cross4f8d9e62016-12-01 15:55:00 -0800110 static: {
111 enabled: false,
112 },
113 },
114 host: {
Colin Cross4f8d9e62016-12-01 15:55:00 -0800115 shared: {
116 enabled: false,
117 },
Adam Lesinski7ad11102016-10-28 16:39:15 -0700118 static_libs: [
Ryan Mitchell55ef6162020-11-13 23:55:20 +0000119 "libbase",
Ryan Mitchell55ef6162020-11-13 23:55:20 +0000120 "libcutils",
Ryan Mitchelldb21f09a2020-11-16 23:08:18 +0000121 "liblog",
Ryan Mitchell55ef6162020-11-13 23:55:20 +0000122 "libutils",
Ryan Mitchelldb21f09a2020-11-16 23:08:18 +0000123 "libziparchive",
Adam Lesinski7ad11102016-10-28 16:39:15 -0700124 ],
125 shared_libs: [
Dan Willemsena2902e32017-09-27 16:20:31 -0700126 "libz",
Adam Lesinski7ad11102016-10-28 16:39:15 -0700127 ],
Colin Cross4f8d9e62016-12-01 15:55:00 -0800128 },
Colin Crosse8f6f0b2022-03-08 18:17:43 -0800129 host_linux: {
Jerome Gaillard10447022020-11-02 16:16:17 +0000130 srcs: [
131 "CursorWindow.cpp",
132 ],
133 },
Colin Cross4f8d9e62016-12-01 15:55:00 -0800134 windows: {
135 enabled: true,
Colin Cross4f8d9e62016-12-01 15:55:00 -0800136 },
137 },
Ivan Lozano02828742017-11-07 13:26:27 -0800138 sanitize: {
Pirama Arumuga Nainar88db3032020-07-28 14:38:20 -0700139 blocklist: "libandroidfw_blocklist.txt",
Ivan Lozano02828742017-11-07 13:26:27 -0800140 },
Colin Cross4f8d9e62016-12-01 15:55:00 -0800141}
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700142
Tomasz Wasilczyk804e8192023-08-23 02:22:53 +0000143cc_library_static {
144 name: "libandroidfw_pathutils",
145 defaults: ["libandroidfw_defaults"],
146 host_supported: true,
147 export_include_dirs: ["include_pathutils"],
148 srcs: [
149 "PathUtils.cpp",
150 ],
151 shared_libs: [
152 "libutils",
153 ],
154 target: {
155 windows: {
156 enabled: true,
157 },
158 },
159 visibility: [
160 ":__subpackages__",
161 "//frameworks/base/tools/aapt",
162 ],
163}
164
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700165common_test_libs = [
166 "libandroidfw",
167 "libbase",
168 "libcutils",
169 "libutils",
170 "libziparchive",
171]
172
173cc_test {
174 name: "libandroidfw_tests",
175 host_supported: true,
176 defaults: ["libandroidfw_defaults"],
177 cppflags: [
178 // This is to suppress warnings/errors from gtest
179 "-Wno-unnamed-type-template-args",
180 ],
181 srcs: [
182 // Helpers/infra for testing.
183 "tests/CommonHelpers.cpp",
184 "tests/TestHelpers.cpp",
185 "tests/TestMain.cpp",
186
187 // Actual tests.
188 "tests/ApkAssets_test.cpp",
Jeremy Meyer5fd34ea2022-12-15 18:43:36 +0000189 "tests/ApkParsing_test.cpp",
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700190 "tests/AppAsLib_test.cpp",
191 "tests/Asset_test.cpp",
192 "tests/AssetManager2_test.cpp",
193 "tests/AttributeFinder_test.cpp",
194 "tests/AttributeResolution_test.cpp",
Jeremy Meyer56f36e82022-05-20 20:35:42 +0000195 "tests/BigBuffer_test.cpp",
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700196 "tests/ByteBucketArray_test.cpp",
197 "tests/Config_test.cpp",
Mårten Kongstad24c9aa62018-06-20 08:46:41 +0200198 "tests/ConfigDescription_test.cpp",
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700199 "tests/ConfigLocale_test.cpp",
Ryan Mitchellb9b540b2018-08-22 11:22:54 -0700200 "tests/DynamicRefTable_test.cpp",
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700201 "tests/Idmap_test.cpp",
202 "tests/LoadedArsc_test.cpp",
Mårten Kongstad24c9aa62018-06-20 08:46:41 +0200203 "tests/Locale_test.cpp",
Lee Shombert3e4d9f22022-09-18 18:02:31 -0700204 "tests/ResourceTimer_test.cpp",
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700205 "tests/ResourceUtils_test.cpp",
206 "tests/ResTable_test.cpp",
207 "tests/Split_test.cpp",
208 "tests/StringPiece_test.cpp",
Jeremy Meyer56f36e82022-05-20 20:35:42 +0000209 "tests/StringPool_test.cpp",
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700210 "tests/Theme_test.cpp",
211 "tests/TypeWrappers_test.cpp",
212 "tests/ZipUtils_test.cpp",
213 ],
Adam Lesinskibebfcc42018-02-12 14:27:46 -0800214 static_libs: ["libgmock"],
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700215 target: {
216 android: {
217 srcs: [
218 "tests/BackupData_test.cpp",
Jeff Sharkeyae2d88a2020-09-26 18:57:32 -0600219 "tests/BackupHelpers_test.cpp",
220 "tests/CursorWindow_test.cpp",
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700221 "tests/ObbFile_test.cpp",
Mårten Kongstad2503a492018-09-27 13:32:30 +0200222 "tests/PosixUtils_test.cpp",
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700223 ],
Brett Chabotde3a2bc2020-11-04 08:59:06 -0800224 shared_libs: common_test_libs + [
225 "libbinder",
226 "liblog",
227 "libui",
228 ],
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700229 },
230 host: {
Brett Chabotde3a2bc2020-11-04 08:59:06 -0800231 static_libs: common_test_libs + [
232 "liblog",
233 "libz",
234 ],
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700235 },
236 },
Winson9947f1e2019-08-16 10:20:39 -0700237 data: [
Ryan Mitchell8a891d82019-07-01 09:48:23 -0700238 "tests/data/**/*.apk",
239 "tests/data/**/*.arsc",
240 "tests/data/**/*.idmap",
Brandon Liu742b11e2022-11-03 23:23:28 +0000241 ":FrameworkResourcesSparseTestApp",
242 ":FrameworkResourcesNotSparseTestApp",
Winson9947f1e2019-08-16 10:20:39 -0700243 ],
Dan Shi8d7267e2018-12-18 16:06:40 -0800244 test_suites: ["device-tests"],
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700245}
246
247cc_benchmark {
248 name: "libandroidfw_benchmarks",
249 defaults: ["libandroidfw_defaults"],
250 srcs: [
251 // Helpers/infra for benchmarking.
252 "tests/BenchMain.cpp",
253 "tests/BenchmarkHelpers.cpp",
254 "tests/CommonHelpers.cpp",
255
256 // Actual benchmarks.
257 "tests/AssetManager2_bench.cpp",
Adam Lesinskibebfcc42018-02-12 14:27:46 -0800258 "tests/AttributeResolution_bench.cpp",
Jeff Sharkeyae2d88a2020-09-26 18:57:32 -0600259 "tests/CursorWindow_bench.cpp",
Yurii Zubrytskyi09144882023-06-15 23:23:15 -0700260 "tests/Generic_bench.cpp",
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700261 "tests/SparseEntry_bench.cpp",
262 "tests/Theme_bench.cpp",
263 ],
264 shared_libs: common_test_libs,
265 data: ["tests/data/**/*.apk"],
266}
Jeff Sharkey256da5a2020-10-13 09:40:52 -0600267
268cc_library {
269 name: "libandroidfw_fuzzer_lib",
270 defaults: ["libandroidfw_defaults"],
271 host_supported: true,
272 srcs: [
273 "CursorWindow.cpp",
274 ],
275 export_include_dirs: ["include"],
276 target: {
277 android: {
Brett Chabotde3a2bc2020-11-04 08:59:06 -0800278 shared_libs: common_test_libs + [
279 "libbinder",
280 "liblog",
281 ],
Jeff Sharkey256da5a2020-10-13 09:40:52 -0600282 },
283 host: {
Brett Chabotde3a2bc2020-11-04 08:59:06 -0800284 static_libs: common_test_libs + [
285 "libbinder",
286 "liblog",
287 ],
288 },
289 darwin: {
290 // libbinder is not supported on mac
291 enabled: false,
Jeff Sharkey256da5a2020-10-13 09:40:52 -0600292 },
293 },
294}