blob: 12d8b2dc62dab067822f7fb48c04015e4549da2a [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: [
137 "libarcobbvolume",
138 ],
Risan9929e7d2018-01-22 11:04:25 +0900139 shared_libs: [
140 "libarcmounter",
141 ],
Risanaedae612017-11-27 18:01:35 +0900142 },
143 },
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600144}
145
146cc_binary {
147 name: "vold",
148 defaults: [
149 "vold_default_flags",
150 "vold_default_libs",
151 ],
152
153 srcs: ["main.cpp"],
154 static_libs: ["libvold"],
Risanaedae612017-11-27 18:01:35 +0900155 product_variables: {
156 arc: {
157 static_libs: [
158 "libarcobbvolume",
Risan9929e7d2018-01-22 11:04:25 +0900159 ],
160 shared_libs: [
161 "libarcmounter",
162 ],
163
Risanaedae612017-11-27 18:01:35 +0900164 },
165 },
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600166 init_rc: ["vold.rc"],
167
168 required: [
169 "mke2fs",
170 "vold_prepare_subdirs",
171 ],
172}
173
174cc_binary {
175 name: "vdc",
176 defaults: ["vold_default_flags"],
177
178 srcs: ["vdc.cpp"],
179 shared_libs: [
180 "libbase",
181 "libbinder",
182 "libcutils",
183 "libutils",
184 ],
185 static_libs: [
186 "libvold_binder",
187 ],
188 init_rc: ["vdc.rc"],
189}
190
191cc_binary {
192 name: "secdiscard",
193 defaults: ["vold_default_flags"],
194
195 srcs: [
196 "FileDeviceUtils.cpp",
197 "secdiscard.cpp",
198 ],
199 shared_libs: ["libbase"],
200}
201
202cc_binary {
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600203 name: "vold_prepare_subdirs",
204 defaults: ["vold_default_flags"],
205
Paul Crowley82b41ff2017-10-20 08:17:54 -0700206 srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
207 shared_libs: [
208 "libbase",
209 "libcutils",
210 "liblogwrap",
211 "libselinux",
212 "libutils",
213 ],
214 static_libs: [
215 "libvold_binder",
216 ],
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600217}
218
Colin Crossa8388632017-11-25 08:47:19 -0800219filegroup {
220 name: "vold_aidl",
221 srcs: [
222 "binder/android/os/IVold.aidl",
223 "binder/android/os/IVoldListener.aidl",
224 "binder/android/os/IVoldTaskListener.aidl",
225 ],
226}
227
Jeff Sharkeyd16dc502017-10-23 14:38:55 -0600228subdirs = ["tests"]