blob: a3072ebe563814bfb2cefa488d732c0a6bf8cb55 [file] [log] [blame]
Jeff Sharkeyd16dc502017-10-23 14:38:55 -06001cc_defaults {
2 name: "vold_default_flags",
3
4 cflags: [
5 "-Wall",
6 "-Werror",
7 "-Wextra",
8 "-Wno-missing-field-initializers",
9 "-Wno-unused-parameter",
10 "-Wno-unused-variable",
11 ],
12
13 clang: true,
14
15 tidy: true,
16 tidy_checks: [
17 "-*",
18 "cert-*",
19 "clang-analyzer-security*",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060020 ],
21 tidy_flags: [
22 "-warnings-as-errors=clang-analyzer-security*,cert-*",
23 ],
24}
25
26cc_defaults {
27 name: "vold_default_libs",
28
29 static_libs: [
30 "libavb",
31 "libbootloader_message",
32 "libfec",
33 "libfec_rs",
34 "libfs_mgr",
35 "libscrypt_static",
36 "libsquashfs_utils",
37 "libvold_binder",
38 ],
39 shared_libs: [
40 "android.hardware.keymaster@3.0",
Shawn Willden35351812018-01-22 09:08:32 -070041 "android.hardware.keymaster@4.0",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060042 "libbase",
43 "libbinder",
44 "libcrypto",
45 "libcrypto_utils",
46 "libcutils",
47 "libdiskconfig",
48 "libext4_utils",
49 "libf2fs_sparseblock",
50 "libhardware",
51 "libhardware_legacy",
52 "libhidlbase",
53 "libhwbinder",
Shawn Willden35351812018-01-22 09:08:32 -070054 "libkeymaster4support",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060055 "libkeyutils",
56 "liblog",
57 "liblogwrap",
58 "libselinux",
59 "libsysutils",
60 "libutils",
61 ],
62}
63
64cc_library_static {
65 name: "libvold_binder",
66 defaults: ["vold_default_flags"],
67
68 srcs: [
Colin Crossa8388632017-11-25 08:47:19 -080069 ":vold_aidl",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060070 ],
71 shared_libs: [
72 "libbinder",
73 "libutils",
74 ],
75 aidl: {
76 local_include_dirs: ["binder"],
77 include_dirs: ["frameworks/native/aidl/binder"],
78 export_aidl_headers: true,
79 },
80}
81
Risanaedae612017-11-27 18:01:35 +090082cc_library_headers {
83 name: "libvold_headers",
84 export_include_dirs: ["."],
85}
86
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060087// Static library factored out to support testing
88cc_library_static {
89 name: "libvold",
90 defaults: [
91 "vold_default_flags",
92 "vold_default_libs",
93 ],
94
95 srcs: [
96 "Benchmark.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -060097 "CheckEncryption.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -060098 "Devmapper.cpp",
99 "EncryptInplace.cpp",
100 "Ext4Crypt.cpp",
Jeff Sharkey2048a282017-06-15 09:59:43 -0600101 "FileDeviceUtils.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600102 "IdleMaint.cpp",
103 "KeyBuffer.cpp",
104 "KeyStorage.cpp",
105 "KeyUtil.cpp",
106 "Keymaster.cpp",
107 "Loop.cpp",
108 "MetadataCrypt.cpp",
109 "MoveStorage.cpp",
110 "NetlinkHandler.cpp",
111 "NetlinkManager.cpp",
112 "Process.cpp",
113 "ScryptParameters.cpp",
114 "Utils.cpp",
115 "VoldNativeService.cpp",
116 "VoldUtil.cpp",
117 "VolumeManager.cpp",
118 "cryptfs.cpp",
Jeff Sharkey37ba1252018-01-19 10:55:18 +0900119 "fs/Exfat.cpp",
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600120 "fs/Ext4.cpp",
121 "fs/F2fs.cpp",
122 "fs/Vfat.cpp",
123 "model/Disk.cpp",
124 "model/EmulatedVolume.cpp",
125 "model/ObbVolume.cpp",
126 "model/PrivateVolume.cpp",
127 "model/PublicVolume.cpp",
128 "model/VolumeBase.cpp",
129 "secontext.cpp",
130 ],
Risanaedae612017-11-27 18:01:35 +0900131 product_variables: {
132 arc: {
133 exclude_srcs: [
134 "model/ObbVolume.cpp",
135 ],
136 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900137 "arc_services_aidl",
Risanaedae612017-11-27 18:01:35 +0900138 "libarcobbvolume",
139 ],
Risan9929e7d2018-01-22 11:04:25 +0900140 shared_libs: [
141 "libarcmounter",
142 ],
Risanaedae612017-11-27 18:01:35 +0900143 },
144 },
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600145}
146
147cc_binary {
148 name: "vold",
149 defaults: [
150 "vold_default_flags",
151 "vold_default_libs",
152 ],
153
154 srcs: ["main.cpp"],
155 static_libs: ["libvold"],
Risanaedae612017-11-27 18:01:35 +0900156 product_variables: {
157 arc: {
158 static_libs: [
Risanea2d2bb2018-02-23 08:12:37 +0900159 "arc_services_aidl",
Risanaedae612017-11-27 18:01:35 +0900160 "libarcobbvolume",
Risan9929e7d2018-01-22 11:04:25 +0900161 ],
162 shared_libs: [
163 "libarcmounter",
164 ],
165
Risanaedae612017-11-27 18:01:35 +0900166 },
167 },
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600168 init_rc: ["vold.rc"],
169
170 required: [
171 "mke2fs",
172 "vold_prepare_subdirs",
173 ],
174}
175
176cc_binary {
177 name: "vdc",
178 defaults: ["vold_default_flags"],
179
180 srcs: ["vdc.cpp"],
181 shared_libs: [
182 "libbase",
183 "libbinder",
184 "libcutils",
185 "libutils",
186 ],
187 static_libs: [
188 "libvold_binder",
189 ],
190 init_rc: ["vdc.rc"],
191}
192
193cc_binary {
194 name: "secdiscard",
195 defaults: ["vold_default_flags"],
196
197 srcs: [
198 "FileDeviceUtils.cpp",
199 "secdiscard.cpp",
200 ],
201 shared_libs: ["libbase"],
202}
203
204cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600205 name: "vold_prepare_subdirs",
206 defaults: ["vold_default_flags"],
207
Paul Crowley82b41ff2017-10-20 08:17:54 -0700208 srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
209 shared_libs: [
210 "libbase",
211 "libcutils",
212 "liblogwrap",
213 "libselinux",
214 "libutils",
215 ],
216 static_libs: [
217 "libvold_binder",
218 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600219}
220
Colin Crossa8388632017-11-25 08:47:19 -0800221filegroup {
222 name: "vold_aidl",
223 srcs: [
224 "binder/android/os/IVold.aidl",
225 "binder/android/os/IVoldListener.aidl",
226 "binder/android/os/IVoldTaskListener.aidl",
227 ],
228}
229
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600230subdirs = ["tests"]