blob: 4b4284a0c745b4ae40d624a27341e955df650efb [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
Adam Lesinski873ef0e2017-10-11 16:50:37 -070017cc_defaults {
18 name: "libandroidfw_defaults",
Colin Cross4f8d9e62016-12-01 15:55:00 -080019 cflags: [
Colin Cross4f8d9e62016-12-01 15:55:00 -080020 "-Werror",
Colin Cross4f8d9e62016-12-01 15:55:00 -080021 "-Wunreachable-code",
22 ],
Adam Lesinski873ef0e2017-10-11 16:50:37 -070023 target: {
24 windows: {
25 // The Windows compiler warns incorrectly for value initialization with {}.
26 cppflags: ["-Wno-missing-field-initializers"],
27 },
28 host: {
29 cflags: ["-DSTATIC_ANDROIDFW_FOR_TOOLS"],
30 },
31 },
32}
33
34cc_library {
35 name: "libandroidfw",
36 defaults: ["libandroidfw_defaults"],
37 host_supported: true,
Colin Cross4f8d9e62016-12-01 15:55:00 -080038 srcs: [
Adam Lesinski7ad11102016-10-28 16:39:15 -070039 "ApkAssets.cpp",
Colin Cross4f8d9e62016-12-01 15:55:00 -080040 "Asset.cpp",
41 "AssetDir.cpp",
42 "AssetManager.cpp",
Adam Lesinski7ad11102016-10-28 16:39:15 -070043 "AssetManager2.cpp",
Ryan Mitchell1a48fa62021-01-10 08:36:36 -080044 "AssetsProvider.cpp",
Colin Cross4f8d9e62016-12-01 15:55:00 -080045 "AttributeResolution.cpp",
Adam Lesinski7ad11102016-10-28 16:39:15 -070046 "ChunkIterator.cpp",
Mårten Kongstad24c9aa62018-06-20 08:46:41 +020047 "ConfigDescription.cpp",
Adam Lesinski970bd8d2017-09-25 13:21:55 -070048 "Idmap.cpp",
Adam Lesinski7ad11102016-10-28 16:39:15 -070049 "LoadedArsc.cpp",
Mårten Kongstad24c9aa62018-06-20 08:46:41 +020050 "Locale.cpp",
Colin Cross4f8d9e62016-12-01 15:55:00 -080051 "LocaleData.cpp",
52 "misc.cpp",
53 "ObbFile.cpp",
Mårten Kongstad2503a492018-09-27 13:32:30 +020054 "PosixUtils.cpp",
Colin Cross4f8d9e62016-12-01 15:55:00 -080055 "ResourceTypes.cpp",
Adam Lesinski929d6512017-01-16 19:11:19 -080056 "ResourceUtils.cpp",
Colin Cross4f8d9e62016-12-01 15:55:00 -080057 "StreamingZipInflater.cpp",
58 "TypeWrappers.cpp",
Adam Lesinskida431a22016-12-29 16:08:16 -050059 "Util.cpp",
Colin Cross4f8d9e62016-12-01 15:55:00 -080060 "ZipFileRO.cpp",
61 "ZipUtils.cpp",
62 ],
63 export_include_dirs: ["include"],
Dan Willemsen4888b1f2018-05-09 20:30:33 -070064 export_shared_lib_headers: ["libz"],
Ryan Mitchelldb21f09a2020-11-16 23:08:18 +000065 static_libs: ["libincfs-utils"],
66 whole_static_libs: ["libincfs-utils"],
67 export_static_lib_headers: ["libincfs-utils"],
Colin Cross4f8d9e62016-12-01 15:55:00 -080068 target: {
69 android: {
70 srcs: [
71 "BackupData.cpp",
72 "BackupHelpers.cpp",
73 "CursorWindow.cpp",
Colin Cross4f8d9e62016-12-01 15:55:00 -080074 ],
75 shared_libs: [
Colin Cross4f8d9e62016-12-01 15:55:00 -080076 "libbase",
77 "libbinder",
78 "liblog",
79 "libcutils",
Ryan Mitchelldb21f09a2020-11-16 23:08:18 +000080 "libincfs",
Colin Cross4f8d9e62016-12-01 15:55:00 -080081 "libutils",
82 "libz",
Ryan Mitchelldb21f09a2020-11-16 23:08:18 +000083 "libziparchive",
Colin Cross4f8d9e62016-12-01 15:55:00 -080084 ],
85 static: {
86 enabled: false,
87 },
88 },
89 host: {
Colin Cross4f8d9e62016-12-01 15:55:00 -080090 shared: {
91 enabled: false,
92 },
Adam Lesinski7ad11102016-10-28 16:39:15 -070093 static_libs: [
Ryan Mitchell55ef6162020-11-13 23:55:20 +000094 "libbase",
Ryan Mitchell55ef6162020-11-13 23:55:20 +000095 "libcutils",
Ryan Mitchelldb21f09a2020-11-16 23:08:18 +000096 "liblog",
Ryan Mitchell55ef6162020-11-13 23:55:20 +000097 "libutils",
Ryan Mitchelldb21f09a2020-11-16 23:08:18 +000098 "libziparchive",
Adam Lesinski7ad11102016-10-28 16:39:15 -070099 ],
100 shared_libs: [
Dan Willemsena2902e32017-09-27 16:20:31 -0700101 "libz",
Adam Lesinski7ad11102016-10-28 16:39:15 -0700102 ],
Colin Cross4f8d9e62016-12-01 15:55:00 -0800103 },
Jerome Gaillard10447022020-11-02 16:16:17 +0000104 linux_glibc: {
105 srcs: [
106 "CursorWindow.cpp",
107 ],
108 },
Colin Cross4f8d9e62016-12-01 15:55:00 -0800109 windows: {
110 enabled: true,
Colin Cross4f8d9e62016-12-01 15:55:00 -0800111 },
112 },
Ivan Lozano02828742017-11-07 13:26:27 -0800113 sanitize: {
Pirama Arumuga Nainar88db3032020-07-28 14:38:20 -0700114 blocklist: "libandroidfw_blocklist.txt",
Ivan Lozano02828742017-11-07 13:26:27 -0800115 },
Colin Cross4f8d9e62016-12-01 15:55:00 -0800116}
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700117
118common_test_libs = [
119 "libandroidfw",
120 "libbase",
121 "libcutils",
122 "libutils",
123 "libziparchive",
124]
125
126cc_test {
127 name: "libandroidfw_tests",
128 host_supported: true,
129 defaults: ["libandroidfw_defaults"],
130 cppflags: [
131 // This is to suppress warnings/errors from gtest
132 "-Wno-unnamed-type-template-args",
133 ],
134 srcs: [
135 // Helpers/infra for testing.
136 "tests/CommonHelpers.cpp",
137 "tests/TestHelpers.cpp",
138 "tests/TestMain.cpp",
139
140 // Actual tests.
141 "tests/ApkAssets_test.cpp",
142 "tests/AppAsLib_test.cpp",
143 "tests/Asset_test.cpp",
144 "tests/AssetManager2_test.cpp",
145 "tests/AttributeFinder_test.cpp",
146 "tests/AttributeResolution_test.cpp",
147 "tests/ByteBucketArray_test.cpp",
148 "tests/Config_test.cpp",
Mårten Kongstad24c9aa62018-06-20 08:46:41 +0200149 "tests/ConfigDescription_test.cpp",
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700150 "tests/ConfigLocale_test.cpp",
Ryan Mitchellb9b540b2018-08-22 11:22:54 -0700151 "tests/DynamicRefTable_test.cpp",
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700152 "tests/Idmap_test.cpp",
153 "tests/LoadedArsc_test.cpp",
Mårten Kongstad24c9aa62018-06-20 08:46:41 +0200154 "tests/Locale_test.cpp",
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700155 "tests/ResourceUtils_test.cpp",
156 "tests/ResTable_test.cpp",
157 "tests/Split_test.cpp",
158 "tests/StringPiece_test.cpp",
159 "tests/Theme_test.cpp",
160 "tests/TypeWrappers_test.cpp",
161 "tests/ZipUtils_test.cpp",
162 ],
Adam Lesinskibebfcc42018-02-12 14:27:46 -0800163 static_libs: ["libgmock"],
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700164 target: {
165 android: {
166 srcs: [
167 "tests/BackupData_test.cpp",
Jeff Sharkeyae2d88a2020-09-26 18:57:32 -0600168 "tests/BackupHelpers_test.cpp",
169 "tests/CursorWindow_test.cpp",
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700170 "tests/ObbFile_test.cpp",
Mårten Kongstad2503a492018-09-27 13:32:30 +0200171 "tests/PosixUtils_test.cpp",
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700172 ],
Brett Chabotde3a2bc2020-11-04 08:59:06 -0800173 shared_libs: common_test_libs + [
174 "libbinder",
175 "liblog",
176 "libui",
177 ],
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700178 },
179 host: {
Brett Chabotde3a2bc2020-11-04 08:59:06 -0800180 static_libs: common_test_libs + [
181 "liblog",
182 "libz",
183 ],
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700184 },
185 },
Winson9947f1e2019-08-16 10:20:39 -0700186 data: [
Ryan Mitchell8a891d82019-07-01 09:48:23 -0700187 "tests/data/**/*.apk",
188 "tests/data/**/*.arsc",
189 "tests/data/**/*.idmap",
Winson9947f1e2019-08-16 10:20:39 -0700190 ],
Dan Shi8d7267e2018-12-18 16:06:40 -0800191 test_suites: ["device-tests"],
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700192}
193
194cc_benchmark {
195 name: "libandroidfw_benchmarks",
196 defaults: ["libandroidfw_defaults"],
197 srcs: [
198 // Helpers/infra for benchmarking.
199 "tests/BenchMain.cpp",
200 "tests/BenchmarkHelpers.cpp",
201 "tests/CommonHelpers.cpp",
202
203 // Actual benchmarks.
204 "tests/AssetManager2_bench.cpp",
Adam Lesinskibebfcc42018-02-12 14:27:46 -0800205 "tests/AttributeResolution_bench.cpp",
Jeff Sharkeyae2d88a2020-09-26 18:57:32 -0600206 "tests/CursorWindow_bench.cpp",
Adam Lesinski873ef0e2017-10-11 16:50:37 -0700207 "tests/SparseEntry_bench.cpp",
208 "tests/Theme_bench.cpp",
209 ],
210 shared_libs: common_test_libs,
211 data: ["tests/data/**/*.apk"],
212}
Jeff Sharkey256da5a2020-10-13 09:40:52 -0600213
214cc_library {
215 name: "libandroidfw_fuzzer_lib",
216 defaults: ["libandroidfw_defaults"],
217 host_supported: true,
218 srcs: [
219 "CursorWindow.cpp",
220 ],
221 export_include_dirs: ["include"],
222 target: {
223 android: {
Brett Chabotde3a2bc2020-11-04 08:59:06 -0800224 shared_libs: common_test_libs + [
225 "libbinder",
226 "liblog",
227 ],
Jeff Sharkey256da5a2020-10-13 09:40:52 -0600228 },
229 host: {
Brett Chabotde3a2bc2020-11-04 08:59:06 -0800230 static_libs: common_test_libs + [
231 "libbinder",
232 "liblog",
233 ],
234 },
235 darwin: {
236 // libbinder is not supported on mac
237 enabled: false,
Jeff Sharkey256da5a2020-10-13 09:40:52 -0600238 },
239 },
240}