| Hridya Valsaraju | dea91b4 | 2018-07-17 11:14:01 -0700 | [diff] [blame] | 1 | // Copyright (C) 2018 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 |  | 
| Aaron Wisner | a5ad20a | 2018-08-24 09:59:50 -0500 | [diff] [blame] | 15 | // This is required because no Android.bp can include a library defined in an | 
 | 16 | // Android.mk. Eventually should kill libfastboot (defined in Android.mk) | 
| Aaron Wisner | db51120 | 2018-06-26 15:38:35 -0500 | [diff] [blame] | 17 | cc_library_host_static { | 
 | 18 |     name: "libfastboot2", | 
 | 19 |  | 
 | 20 |     //host_supported: true, | 
 | 21 |  | 
 | 22 |     compile_multilib: "first", | 
 | 23 |     srcs: [ | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 24 |         "bootimg_utils.cpp", | 
 | 25 |         "fs.cpp", | 
 | 26 |         "socket.cpp", | 
 | 27 |         "tcp.cpp", | 
 | 28 |         "udp.cpp", | 
 | 29 |         "util.cpp", | 
 | 30 |         "fastboot_driver.cpp", | 
| Aaron Wisner | db51120 | 2018-06-26 15:38:35 -0500 | [diff] [blame] | 31 |     ], | 
 | 32 |  | 
 | 33 |     static_libs: [ | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 34 |         "libziparchive", | 
 | 35 |         "libsparse", | 
 | 36 |         "libutils", | 
 | 37 |         "liblog", | 
 | 38 |         "libz", | 
 | 39 |         "libdiagnose_usb", | 
 | 40 |         "libbase", | 
 | 41 |         "libcutils", | 
 | 42 |         "libgtest", | 
 | 43 |         "libgtest_main", | 
 | 44 |         "libbase", | 
 | 45 |         "libadb_host", | 
| David Anderson | 8956964 | 2018-11-16 15:53:35 -0800 | [diff] [blame] | 46 |         "liblp", | 
| Aaron Wisner | db51120 | 2018-06-26 15:38:35 -0500 | [diff] [blame] | 47 |     ], | 
 | 48 |  | 
 | 49 |     header_libs: [ | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 50 |         "bootimg_headers", | 
| Aaron Wisner | db51120 | 2018-06-26 15:38:35 -0500 | [diff] [blame] | 51 |     ], | 
 | 52 |  | 
 | 53 |     export_header_lib_headers: [ | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 54 |         "bootimg_headers", | 
| Aaron Wisner | db51120 | 2018-06-26 15:38:35 -0500 | [diff] [blame] | 55 |     ], | 
 | 56 |  | 
| Aaron Wisner | db51120 | 2018-06-26 15:38:35 -0500 | [diff] [blame] | 57 |     target: { | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 58 |         linux: { | 
 | 59 |             srcs: ["usb_linux.cpp"], | 
 | 60 |         }, | 
| Aaron Wisner | a5ad20a | 2018-08-24 09:59:50 -0500 | [diff] [blame] | 61 |  | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 62 |         darwin: { | 
 | 63 |             srcs: ["usb_osx.cpp"], | 
| Aaron Wisner | a5ad20a | 2018-08-24 09:59:50 -0500 | [diff] [blame] | 64 |  | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 65 |             host_ldlibs: [ | 
 | 66 |                 "-framework CoreFoundation", | 
 | 67 |                 "-framework IOKit", | 
 | 68 |             ], | 
 | 69 |         }, | 
| Aaron Wisner | a5ad20a | 2018-08-24 09:59:50 -0500 | [diff] [blame] | 70 |  | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 71 |         windows: { | 
 | 72 |             srcs: ["usb_windows.cpp"], | 
| Aaron Wisner | a5ad20a | 2018-08-24 09:59:50 -0500 | [diff] [blame] | 73 |  | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 74 |             host_ldlibs: [ | 
 | 75 |                 "-lws2_32", | 
 | 76 |             ], | 
 | 77 |         }, | 
| Aaron Wisner | db51120 | 2018-06-26 15:38:35 -0500 | [diff] [blame] | 78 |     }, | 
 | 79 |  | 
 | 80 |     cflags: [ | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 81 |         "-Wall", | 
 | 82 |         "-Wextra", | 
 | 83 |         "-Werror", | 
 | 84 |         "-Wunreachable-code", | 
| Aaron Wisner | db51120 | 2018-06-26 15:38:35 -0500 | [diff] [blame] | 85 |     ], | 
 | 86 |  | 
 | 87 |     export_include_dirs: ["."], | 
 | 88 |  | 
 | 89 | } | 
| Hridya Valsaraju | dea91b4 | 2018-07-17 11:14:01 -0700 | [diff] [blame] | 90 |  | 
 | 91 | cc_defaults { | 
 | 92 |     name: "fastboot_defaults", | 
 | 93 |  | 
 | 94 |     cflags: [ | 
 | 95 |         "-Wall", | 
 | 96 |         "-Wextra", | 
 | 97 |         "-Werror", | 
 | 98 |         "-Wvla", | 
 | 99 |     ], | 
 | 100 |     rtti: true, | 
 | 101 |  | 
 | 102 |     clang_cflags: [ | 
 | 103 |         "-Wthread-safety", | 
 | 104 |     ], | 
 | 105 | } | 
 | 106 |  | 
 | 107 | cc_binary { | 
 | 108 |     name: "fastbootd", | 
 | 109 |     defaults: ["fastboot_defaults"], | 
 | 110 |  | 
 | 111 |     recovery: true, | 
 | 112 |  | 
 | 113 |     srcs: [ | 
 | 114 |         "device/commands.cpp", | 
 | 115 |         "device/fastboot_device.cpp", | 
| David Anderson | 12211d1 | 2018-07-24 15:21:20 -0700 | [diff] [blame] | 116 |         "device/flashing.cpp", | 
| Hridya Valsaraju | dea91b4 | 2018-07-17 11:14:01 -0700 | [diff] [blame] | 117 |         "device/main.cpp", | 
 | 118 |         "device/usb_client.cpp", | 
| Hridya Valsaraju | 31d2c26 | 2018-07-20 13:35:50 -0700 | [diff] [blame] | 119 |         "device/utility.cpp", | 
 | 120 |         "device/variables.cpp", | 
| Hridya Valsaraju | dea91b4 | 2018-07-17 11:14:01 -0700 | [diff] [blame] | 121 |     ], | 
 | 122 |  | 
 | 123 |     shared_libs: [ | 
| Hridya Valsaraju | 31d2c26 | 2018-07-20 13:35:50 -0700 | [diff] [blame] | 124 |         "android.hardware.boot@1.0", | 
| Hridya Valsaraju | bf9f8d1 | 2018-09-05 16:57:24 -0700 | [diff] [blame] | 125 |         "android.hardware.fastboot@1.0", | 
| Hridya Valsaraju | 47658ca | 2018-09-28 11:41:22 -0700 | [diff] [blame] | 126 |         "android.hardware.health@2.0", | 
| Hridya Valsaraju | dea91b4 | 2018-07-17 11:14:01 -0700 | [diff] [blame] | 127 |         "libadbd", | 
| Tao Bao | b71eedf | 2018-08-06 19:13:38 -0700 | [diff] [blame] | 128 |         "libasyncio", | 
 | 129 |         "libbase", | 
 | 130 |         "libbootloader_message", | 
 | 131 |         "libcutils", | 
| David Anderson | 0d4277d | 2018-07-31 13:27:37 -0700 | [diff] [blame] | 132 |         "libext2_uuid", | 
| Tao Bao | b71eedf | 2018-08-06 19:13:38 -0700 | [diff] [blame] | 133 |         "libext4_utils", | 
 | 134 |         "libfs_mgr", | 
| David Anderson | 1d504e3 | 2019-01-15 14:38:20 -0800 | [diff] [blame] | 135 |         "libgsi", | 
| Tao Bao | b71eedf | 2018-08-06 19:13:38 -0700 | [diff] [blame] | 136 |         "libhidlbase", | 
 | 137 |         "libhidltransport", | 
 | 138 |         "libhwbinder", | 
 | 139 |         "liblog", | 
| David Anderson | 88ef0b1 | 2018-08-09 10:40:00 -0700 | [diff] [blame] | 140 |         "liblp", | 
| Tao Bao | b71eedf | 2018-08-06 19:13:38 -0700 | [diff] [blame] | 141 |         "libsparse", | 
 | 142 |         "libutils", | 
| Hridya Valsaraju | dea91b4 | 2018-07-17 11:14:01 -0700 | [diff] [blame] | 143 |     ], | 
 | 144 |  | 
| Hridya Valsaraju | 47658ca | 2018-09-28 11:41:22 -0700 | [diff] [blame] | 145 |     static_libs: [ | 
 | 146 |         "libhealthhalutils", | 
 | 147 |     ], | 
| Hridya Valsaraju | dea91b4 | 2018-07-17 11:14:01 -0700 | [diff] [blame] | 148 | } | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 149 |  | 
 | 150 | cc_defaults { | 
 | 151 |     name: "fastboot_host_defaults", | 
 | 152 |  | 
 | 153 |     use_version_lib: true, | 
 | 154 |  | 
 | 155 |     cflags: [ | 
 | 156 |         "-Wall", | 
 | 157 |         "-Wextra", | 
 | 158 |         "-Werror", | 
 | 159 |         "-Wunreachable-code", | 
 | 160 |     ], | 
 | 161 |  | 
 | 162 |     target: { | 
 | 163 |         darwin: { | 
 | 164 |             cflags: ["-Wno-unused-parameter"], | 
 | 165 |             host_ldlibs: [ | 
 | 166 |                 "-lpthread", | 
 | 167 |                 "-framework CoreFoundation", | 
 | 168 |                 "-framework IOKit", | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 169 |             ], | 
 | 170 |         }, | 
 | 171 |         windows: { | 
 | 172 |             enabled: true, | 
 | 173 |  | 
 | 174 |             host_ldlibs: ["-lws2_32"], | 
 | 175 |         }, | 
| David Anderson | 8956964 | 2018-11-16 15:53:35 -0800 | [diff] [blame] | 176 |         not_windows: { | 
 | 177 |             static_libs: [ | 
 | 178 |                 "libext4_utils", | 
 | 179 |             ], | 
 | 180 |         }, | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 181 |     }, | 
 | 182 |  | 
 | 183 |     stl: "libc++_static", | 
 | 184 |  | 
 | 185 |     // Don't add anything here, we don't want additional shared dependencies | 
 | 186 |     // on the host fastboot tool, and shared libraries that link against libc++ | 
 | 187 |     // will violate ODR. | 
 | 188 |     shared_libs: [], | 
 | 189 |  | 
 | 190 |     header_libs: ["bootimg_headers"], | 
 | 191 |     static_libs: [ | 
 | 192 |         "libziparchive", | 
 | 193 |         "libsparse", | 
 | 194 |         "libutils", | 
 | 195 |         "liblog", | 
 | 196 |         "libz", | 
 | 197 |         "libdiagnose_usb", | 
 | 198 |         "libbase", | 
 | 199 |         "libcutils", | 
 | 200 |         "libgtest_host", | 
| David Anderson | 8956964 | 2018-11-16 15:53:35 -0800 | [diff] [blame] | 201 |         "liblp", | 
 | 202 |         "libcrypto", | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 203 |     ], | 
 | 204 | } | 
 | 205 |  | 
 | 206 | // | 
 | 207 | // Build host libfastboot. | 
 | 208 | // | 
 | 209 |  | 
 | 210 | cc_library_host_static { | 
 | 211 |     name: "libfastboot", | 
 | 212 |     defaults: ["fastboot_host_defaults"], | 
 | 213 |  | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 214 |     srcs: [ | 
 | 215 |         "bootimg_utils.cpp", | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 216 |         "fastboot.cpp", | 
 | 217 |         "fs.cpp", | 
 | 218 |         "socket.cpp", | 
 | 219 |         "tcp.cpp", | 
 | 220 |         "udp.cpp", | 
 | 221 |         "util.cpp", | 
 | 222 |         "fastboot_driver.cpp", | 
 | 223 |     ], | 
 | 224 |  | 
 | 225 |     // Only version the final binaries | 
 | 226 |     use_version_lib: false, | 
 | 227 |     static_libs: ["libbuildversion"], | 
 | 228 |  | 
 | 229 |     generated_headers: ["platform_tools_version"], | 
 | 230 |  | 
 | 231 |     target: { | 
 | 232 |         windows: { | 
 | 233 |             srcs: ["usb_windows.cpp"], | 
 | 234 |  | 
 | 235 |             include_dirs: ["development/host/windows/usb/api"], | 
 | 236 |         }, | 
 | 237 |         darwin: { | 
 | 238 |             srcs: ["usb_osx.cpp"], | 
 | 239 |         }, | 
 | 240 |         linux_glibc: { | 
 | 241 |             srcs: ["usb_linux.cpp"], | 
 | 242 |         }, | 
 | 243 |     }, | 
 | 244 | } | 
 | 245 |  | 
 | 246 | // | 
 | 247 | // Build host fastboot / fastboot.exe | 
 | 248 | // | 
 | 249 |  | 
 | 250 | cc_binary_host { | 
 | 251 |     name: "fastboot", | 
 | 252 |     defaults: ["fastboot_host_defaults"], | 
 | 253 |  | 
 | 254 |     srcs: ["main.cpp"], | 
 | 255 |     static_libs: ["libfastboot"], | 
 | 256 |  | 
 | 257 |     required: [ | 
 | 258 |         "mke2fs", | 
 | 259 |         "make_f2fs", | 
 | 260 |     ], | 
| Dan Willemsen | 3f439a7 | 2018-11-19 19:11:35 -0800 | [diff] [blame] | 261 |     dist: { | 
 | 262 |         targets: [ | 
 | 263 |             "dist_files", | 
 | 264 |             "sdk", | 
 | 265 |             "win_sdk", | 
 | 266 |         ], | 
 | 267 |     }, | 
| Dan Willemsen | ab971b5 | 2018-08-29 14:58:02 -0700 | [diff] [blame] | 268 |  | 
 | 269 |     target: { | 
 | 270 |         not_windows: { | 
 | 271 |             required: [ | 
 | 272 |                 "e2fsdroid", | 
 | 273 |                 "mke2fs.conf", | 
 | 274 |                 "sload_f2fs", | 
 | 275 |             ], | 
 | 276 |         }, | 
 | 277 |         windows: { | 
 | 278 |             required: ["AdbWinUsbApi"], | 
 | 279 |             shared_libs: ["AdbWinApi"], | 
 | 280 |         }, | 
 | 281 |     }, | 
 | 282 | } | 
 | 283 |  | 
 | 284 | // | 
 | 285 | // Build host fastboot_test. | 
 | 286 | // | 
 | 287 |  | 
 | 288 | cc_test_host { | 
 | 289 |     name: "fastboot_test", | 
 | 290 |     defaults: ["fastboot_host_defaults"], | 
 | 291 |  | 
 | 292 |     srcs: [ | 
 | 293 |         "fastboot_test.cpp", | 
 | 294 |         "socket_mock.cpp", | 
 | 295 |         "socket_test.cpp", | 
 | 296 |         "tcp_test.cpp", | 
 | 297 |         "udp_test.cpp", | 
 | 298 |     ], | 
 | 299 |  | 
 | 300 |     static_libs: ["libfastboot"], | 
 | 301 |  | 
 | 302 |     target: { | 
 | 303 |         windows: { | 
 | 304 |             shared_libs: ["AdbWinApi"], | 
 | 305 |         }, | 
 | 306 |         windows_x86_64: { | 
 | 307 |             // Avoid trying to build for win64 | 
 | 308 |             enabled: false, | 
 | 309 |         }, | 
 | 310 |     }, | 
 | 311 | } |