xref: /aosp_15_r20/system/core/fastboot/Android.bp (revision 00c7fec1bb09f3284aad6a6f96d2f63dfc3650ad)
1*00c7fec1SAndroid Build Coastguard Worker// Copyright (C) 2018 The Android Open Source Project
2*00c7fec1SAndroid Build Coastguard Worker//
3*00c7fec1SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*00c7fec1SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*00c7fec1SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*00c7fec1SAndroid Build Coastguard Worker//
7*00c7fec1SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*00c7fec1SAndroid Build Coastguard Worker//
9*00c7fec1SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*00c7fec1SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*00c7fec1SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*00c7fec1SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*00c7fec1SAndroid Build Coastguard Worker// limitations under the License.
14*00c7fec1SAndroid Build Coastguard Worker
15*00c7fec1SAndroid Build Coastguard Worker// This is required because no Android.bp can include a library defined in an
16*00c7fec1SAndroid Build Coastguard Worker// Android.mk. Eventually should kill libfastboot (defined in Android.mk)
17*00c7fec1SAndroid Build Coastguard Workerpackage {
18*00c7fec1SAndroid Build Coastguard Worker    default_applicable_licenses: [
19*00c7fec1SAndroid Build Coastguard Worker        "system_core_fastboot_license",
20*00c7fec1SAndroid Build Coastguard Worker        "Android-Apache-2.0",
21*00c7fec1SAndroid Build Coastguard Worker    ],
22*00c7fec1SAndroid Build Coastguard Worker}
23*00c7fec1SAndroid Build Coastguard Worker
24*00c7fec1SAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
25*00c7fec1SAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
26*00c7fec1SAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
27*00c7fec1SAndroid Build Coastguard Worker//
28*00c7fec1SAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
29*00c7fec1SAndroid Build Coastguard Worker//
30*00c7fec1SAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
31*00c7fec1SAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
32*00c7fec1SAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
33*00c7fec1SAndroid Build Coastguard Worker//
34*00c7fec1SAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
35*00c7fec1SAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
36*00c7fec1SAndroid Build Coastguard Worker// used in the current project.
37*00c7fec1SAndroid Build Coastguard Worker// See: http://go/android-license-faq
38*00c7fec1SAndroid Build Coastguard Workerlicense {
39*00c7fec1SAndroid Build Coastguard Worker    name: "system_core_fastboot_license",
40*00c7fec1SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
41*00c7fec1SAndroid Build Coastguard Worker    license_kinds: [
42*00c7fec1SAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
43*00c7fec1SAndroid Build Coastguard Worker    ],
44*00c7fec1SAndroid Build Coastguard Worker    license_text: ["LICENSE"],
45*00c7fec1SAndroid Build Coastguard Worker}
46*00c7fec1SAndroid Build Coastguard Worker
47*00c7fec1SAndroid Build Coastguard Workercc_library_host_static {
48*00c7fec1SAndroid Build Coastguard Worker    name: "libfastboot2",
49*00c7fec1SAndroid Build Coastguard Worker
50*00c7fec1SAndroid Build Coastguard Worker    //host_supported: true,
51*00c7fec1SAndroid Build Coastguard Worker
52*00c7fec1SAndroid Build Coastguard Worker    compile_multilib: "first",
53*00c7fec1SAndroid Build Coastguard Worker    srcs: [
54*00c7fec1SAndroid Build Coastguard Worker        "bootimg_utils.cpp",
55*00c7fec1SAndroid Build Coastguard Worker        "fs.cpp",
56*00c7fec1SAndroid Build Coastguard Worker        "socket.cpp",
57*00c7fec1SAndroid Build Coastguard Worker        "tcp.cpp",
58*00c7fec1SAndroid Build Coastguard Worker        "udp.cpp",
59*00c7fec1SAndroid Build Coastguard Worker        "util.cpp",
60*00c7fec1SAndroid Build Coastguard Worker        "vendor_boot_img_utils.cpp",
61*00c7fec1SAndroid Build Coastguard Worker        "fastboot_driver.cpp",
62*00c7fec1SAndroid Build Coastguard Worker    ],
63*00c7fec1SAndroid Build Coastguard Worker
64*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
65*00c7fec1SAndroid Build Coastguard Worker        "libziparchive",
66*00c7fec1SAndroid Build Coastguard Worker        "libsparse",
67*00c7fec1SAndroid Build Coastguard Worker        "libutils",
68*00c7fec1SAndroid Build Coastguard Worker        "liblog",
69*00c7fec1SAndroid Build Coastguard Worker        "libz",
70*00c7fec1SAndroid Build Coastguard Worker        "libdiagnose_usb",
71*00c7fec1SAndroid Build Coastguard Worker        "libbase",
72*00c7fec1SAndroid Build Coastguard Worker        "libcutils",
73*00c7fec1SAndroid Build Coastguard Worker        "libgtest",
74*00c7fec1SAndroid Build Coastguard Worker        "libgtest_main",
75*00c7fec1SAndroid Build Coastguard Worker        "libbase",
76*00c7fec1SAndroid Build Coastguard Worker        "libadb_host",
77*00c7fec1SAndroid Build Coastguard Worker        "liblp",
78*00c7fec1SAndroid Build Coastguard Worker    ],
79*00c7fec1SAndroid Build Coastguard Worker
80*00c7fec1SAndroid Build Coastguard Worker    header_libs: [
81*00c7fec1SAndroid Build Coastguard Worker        "avb_headers",
82*00c7fec1SAndroid Build Coastguard Worker        "bootimg_headers",
83*00c7fec1SAndroid Build Coastguard Worker        "libstorage_literals_headers",
84*00c7fec1SAndroid Build Coastguard Worker    ],
85*00c7fec1SAndroid Build Coastguard Worker
86*00c7fec1SAndroid Build Coastguard Worker    export_header_lib_headers: [
87*00c7fec1SAndroid Build Coastguard Worker        "bootimg_headers",
88*00c7fec1SAndroid Build Coastguard Worker    ],
89*00c7fec1SAndroid Build Coastguard Worker
90*00c7fec1SAndroid Build Coastguard Worker    target: {
91*00c7fec1SAndroid Build Coastguard Worker        linux: {
92*00c7fec1SAndroid Build Coastguard Worker            srcs: ["usb_linux.cpp"],
93*00c7fec1SAndroid Build Coastguard Worker        },
94*00c7fec1SAndroid Build Coastguard Worker
95*00c7fec1SAndroid Build Coastguard Worker        darwin: {
96*00c7fec1SAndroid Build Coastguard Worker            srcs: ["usb_osx.cpp"],
97*00c7fec1SAndroid Build Coastguard Worker
98*00c7fec1SAndroid Build Coastguard Worker            host_ldlibs: [
99*00c7fec1SAndroid Build Coastguard Worker                "-framework CoreFoundation",
100*00c7fec1SAndroid Build Coastguard Worker                "-framework IOKit",
101*00c7fec1SAndroid Build Coastguard Worker            ],
102*00c7fec1SAndroid Build Coastguard Worker        },
103*00c7fec1SAndroid Build Coastguard Worker
104*00c7fec1SAndroid Build Coastguard Worker        windows: {
105*00c7fec1SAndroid Build Coastguard Worker            srcs: ["usb_windows.cpp"],
106*00c7fec1SAndroid Build Coastguard Worker
107*00c7fec1SAndroid Build Coastguard Worker            host_ldlibs: [
108*00c7fec1SAndroid Build Coastguard Worker                "-lws2_32",
109*00c7fec1SAndroid Build Coastguard Worker            ],
110*00c7fec1SAndroid Build Coastguard Worker        },
111*00c7fec1SAndroid Build Coastguard Worker    },
112*00c7fec1SAndroid Build Coastguard Worker
113*00c7fec1SAndroid Build Coastguard Worker    cflags: [
114*00c7fec1SAndroid Build Coastguard Worker        "-Wall",
115*00c7fec1SAndroid Build Coastguard Worker        "-Wextra",
116*00c7fec1SAndroid Build Coastguard Worker        "-Werror",
117*00c7fec1SAndroid Build Coastguard Worker        "-Wunreachable-code",
118*00c7fec1SAndroid Build Coastguard Worker    ],
119*00c7fec1SAndroid Build Coastguard Worker
120*00c7fec1SAndroid Build Coastguard Worker    export_include_dirs: ["."],
121*00c7fec1SAndroid Build Coastguard Worker
122*00c7fec1SAndroid Build Coastguard Worker}
123*00c7fec1SAndroid Build Coastguard Worker
124*00c7fec1SAndroid Build Coastguard Workercc_defaults {
125*00c7fec1SAndroid Build Coastguard Worker    name: "fastboot_defaults",
126*00c7fec1SAndroid Build Coastguard Worker
127*00c7fec1SAndroid Build Coastguard Worker    cflags: [
128*00c7fec1SAndroid Build Coastguard Worker        "-Wall",
129*00c7fec1SAndroid Build Coastguard Worker        "-Wextra",
130*00c7fec1SAndroid Build Coastguard Worker        "-Werror",
131*00c7fec1SAndroid Build Coastguard Worker        "-Wvla",
132*00c7fec1SAndroid Build Coastguard Worker        "-DANDROID_BASE_UNIQUE_FD_DISABLE_IMPLICIT_CONVERSION",
133*00c7fec1SAndroid Build Coastguard Worker        "-Wthread-safety",
134*00c7fec1SAndroid Build Coastguard Worker    ],
135*00c7fec1SAndroid Build Coastguard Worker    rtti: true,
136*00c7fec1SAndroid Build Coastguard Worker
137*00c7fec1SAndroid Build Coastguard Worker}
138*00c7fec1SAndroid Build Coastguard Worker
139*00c7fec1SAndroid Build Coastguard Workercc_binary {
140*00c7fec1SAndroid Build Coastguard Worker    name: "fastbootd",
141*00c7fec1SAndroid Build Coastguard Worker    defaults: ["fastboot_defaults"],
142*00c7fec1SAndroid Build Coastguard Worker
143*00c7fec1SAndroid Build Coastguard Worker    recovery: true,
144*00c7fec1SAndroid Build Coastguard Worker
145*00c7fec1SAndroid Build Coastguard Worker    product_variables: {
146*00c7fec1SAndroid Build Coastguard Worker        debuggable: {
147*00c7fec1SAndroid Build Coastguard Worker            cppflags: ["-DFB_ENABLE_FETCH"],
148*00c7fec1SAndroid Build Coastguard Worker        },
149*00c7fec1SAndroid Build Coastguard Worker    },
150*00c7fec1SAndroid Build Coastguard Worker
151*00c7fec1SAndroid Build Coastguard Worker    srcs: [
152*00c7fec1SAndroid Build Coastguard Worker        "device/commands.cpp",
153*00c7fec1SAndroid Build Coastguard Worker        "device/fastboot_device.cpp",
154*00c7fec1SAndroid Build Coastguard Worker        "device/flashing.cpp",
155*00c7fec1SAndroid Build Coastguard Worker        "device/main.cpp",
156*00c7fec1SAndroid Build Coastguard Worker        "device/usb.cpp",
157*00c7fec1SAndroid Build Coastguard Worker        "device/usb_iouring.cpp",
158*00c7fec1SAndroid Build Coastguard Worker        "device/usb_client.cpp",
159*00c7fec1SAndroid Build Coastguard Worker        "device/tcp_client.cpp",
160*00c7fec1SAndroid Build Coastguard Worker        "device/utility.cpp",
161*00c7fec1SAndroid Build Coastguard Worker        "device/variables.cpp",
162*00c7fec1SAndroid Build Coastguard Worker        "socket.cpp",
163*00c7fec1SAndroid Build Coastguard Worker    ],
164*00c7fec1SAndroid Build Coastguard Worker
165*00c7fec1SAndroid Build Coastguard Worker    shared_libs: [
166*00c7fec1SAndroid Build Coastguard Worker        "[email protected]",
167*00c7fec1SAndroid Build Coastguard Worker        "[email protected]",
168*00c7fec1SAndroid Build Coastguard Worker        "android.hardware.boot-V1-ndk",
169*00c7fec1SAndroid Build Coastguard Worker        "libboot_control_client",
170*00c7fec1SAndroid Build Coastguard Worker        "[email protected]",
171*00c7fec1SAndroid Build Coastguard Worker        "android.hardware.fastboot-V1-ndk",
172*00c7fec1SAndroid Build Coastguard Worker        "[email protected]",
173*00c7fec1SAndroid Build Coastguard Worker        "android.hardware.health-V4-ndk",
174*00c7fec1SAndroid Build Coastguard Worker        "libasyncio",
175*00c7fec1SAndroid Build Coastguard Worker        "libbase",
176*00c7fec1SAndroid Build Coastguard Worker        "libbinder_ndk",
177*00c7fec1SAndroid Build Coastguard Worker        "libbootloader_message",
178*00c7fec1SAndroid Build Coastguard Worker        "libcutils",
179*00c7fec1SAndroid Build Coastguard Worker        "libext2_uuid",
180*00c7fec1SAndroid Build Coastguard Worker        "libext4_utils",
181*00c7fec1SAndroid Build Coastguard Worker        "libfs_mgr",
182*00c7fec1SAndroid Build Coastguard Worker        "libgsi",
183*00c7fec1SAndroid Build Coastguard Worker        "libhidlbase",
184*00c7fec1SAndroid Build Coastguard Worker        "liblog",
185*00c7fec1SAndroid Build Coastguard Worker        "liblp",
186*00c7fec1SAndroid Build Coastguard Worker        "libprotobuf-cpp-lite",
187*00c7fec1SAndroid Build Coastguard Worker        "libsparse",
188*00c7fec1SAndroid Build Coastguard Worker        "libutils",
189*00c7fec1SAndroid Build Coastguard Worker        "libselinux",
190*00c7fec1SAndroid Build Coastguard Worker    ],
191*00c7fec1SAndroid Build Coastguard Worker
192*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
193*00c7fec1SAndroid Build Coastguard Worker        "android.hardware.health-translate-ndk",
194*00c7fec1SAndroid Build Coastguard Worker        "libhealthhalutils",
195*00c7fec1SAndroid Build Coastguard Worker        "libhealthshim",
196*00c7fec1SAndroid Build Coastguard Worker        "libfastbootshim",
197*00c7fec1SAndroid Build Coastguard Worker        "libsnapshot_cow",
198*00c7fec1SAndroid Build Coastguard Worker        "liblz4",
199*00c7fec1SAndroid Build Coastguard Worker        "libzstd",
200*00c7fec1SAndroid Build Coastguard Worker        "libsnapshot_nobinder",
201*00c7fec1SAndroid Build Coastguard Worker        "update_metadata-protos",
202*00c7fec1SAndroid Build Coastguard Worker        "liburing",
203*00c7fec1SAndroid Build Coastguard Worker    ],
204*00c7fec1SAndroid Build Coastguard Worker
205*00c7fec1SAndroid Build Coastguard Worker    header_libs: [
206*00c7fec1SAndroid Build Coastguard Worker        "avb_headers",
207*00c7fec1SAndroid Build Coastguard Worker        "libgtest_prod_headers",
208*00c7fec1SAndroid Build Coastguard Worker        "libsnapshot_headers",
209*00c7fec1SAndroid Build Coastguard Worker        "libstorage_literals_headers",
210*00c7fec1SAndroid Build Coastguard Worker    ],
211*00c7fec1SAndroid Build Coastguard Worker}
212*00c7fec1SAndroid Build Coastguard Worker
213*00c7fec1SAndroid Build Coastguard Workercc_defaults {
214*00c7fec1SAndroid Build Coastguard Worker    name: "fastboot_host_defaults",
215*00c7fec1SAndroid Build Coastguard Worker
216*00c7fec1SAndroid Build Coastguard Worker    use_version_lib: true,
217*00c7fec1SAndroid Build Coastguard Worker
218*00c7fec1SAndroid Build Coastguard Worker    cflags: [
219*00c7fec1SAndroid Build Coastguard Worker        "-Wall",
220*00c7fec1SAndroid Build Coastguard Worker        "-Wextra",
221*00c7fec1SAndroid Build Coastguard Worker        "-Werror",
222*00c7fec1SAndroid Build Coastguard Worker        "-Wunreachable-code",
223*00c7fec1SAndroid Build Coastguard Worker        "-DANDROID_BASE_UNIQUE_FD_DISABLE_IMPLICIT_CONVERSION",
224*00c7fec1SAndroid Build Coastguard Worker        "-D_FILE_OFFSET_BITS=64",
225*00c7fec1SAndroid Build Coastguard Worker    ],
226*00c7fec1SAndroid Build Coastguard Worker
227*00c7fec1SAndroid Build Coastguard Worker    target: {
228*00c7fec1SAndroid Build Coastguard Worker        darwin: {
229*00c7fec1SAndroid Build Coastguard Worker            cflags: ["-Wno-unused-parameter"],
230*00c7fec1SAndroid Build Coastguard Worker            host_ldlibs: [
231*00c7fec1SAndroid Build Coastguard Worker                "-lpthread",
232*00c7fec1SAndroid Build Coastguard Worker                "-framework CoreFoundation",
233*00c7fec1SAndroid Build Coastguard Worker                "-framework IOKit",
234*00c7fec1SAndroid Build Coastguard Worker            ],
235*00c7fec1SAndroid Build Coastguard Worker        },
236*00c7fec1SAndroid Build Coastguard Worker        windows: {
237*00c7fec1SAndroid Build Coastguard Worker            enabled: true,
238*00c7fec1SAndroid Build Coastguard Worker
239*00c7fec1SAndroid Build Coastguard Worker            host_ldlibs: ["-lws2_32"],
240*00c7fec1SAndroid Build Coastguard Worker        },
241*00c7fec1SAndroid Build Coastguard Worker        not_windows: {
242*00c7fec1SAndroid Build Coastguard Worker            static_libs: [
243*00c7fec1SAndroid Build Coastguard Worker                "libext4_utils",
244*00c7fec1SAndroid Build Coastguard Worker            ],
245*00c7fec1SAndroid Build Coastguard Worker        },
246*00c7fec1SAndroid Build Coastguard Worker    },
247*00c7fec1SAndroid Build Coastguard Worker
248*00c7fec1SAndroid Build Coastguard Worker    stl: "libc++_static",
249*00c7fec1SAndroid Build Coastguard Worker
250*00c7fec1SAndroid Build Coastguard Worker    // Don't add anything here, we don't want additional shared dependencies
251*00c7fec1SAndroid Build Coastguard Worker    // on the host fastboot tool, and shared libraries that link against libc++
252*00c7fec1SAndroid Build Coastguard Worker    // will violate ODR.
253*00c7fec1SAndroid Build Coastguard Worker    shared_libs: [],
254*00c7fec1SAndroid Build Coastguard Worker
255*00c7fec1SAndroid Build Coastguard Worker    header_libs: [
256*00c7fec1SAndroid Build Coastguard Worker        "avb_headers",
257*00c7fec1SAndroid Build Coastguard Worker        "bootimg_headers",
258*00c7fec1SAndroid Build Coastguard Worker    ],
259*00c7fec1SAndroid Build Coastguard Worker
260*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
261*00c7fec1SAndroid Build Coastguard Worker        "libziparchive",
262*00c7fec1SAndroid Build Coastguard Worker        "libsparse",
263*00c7fec1SAndroid Build Coastguard Worker        "libutils",
264*00c7fec1SAndroid Build Coastguard Worker        "liblog",
265*00c7fec1SAndroid Build Coastguard Worker        "liblz4",
266*00c7fec1SAndroid Build Coastguard Worker        "libz",
267*00c7fec1SAndroid Build Coastguard Worker        "libdiagnose_usb",
268*00c7fec1SAndroid Build Coastguard Worker        "libbase",
269*00c7fec1SAndroid Build Coastguard Worker        "libcutils",
270*00c7fec1SAndroid Build Coastguard Worker        "libgtest_host",
271*00c7fec1SAndroid Build Coastguard Worker        "liblp",
272*00c7fec1SAndroid Build Coastguard Worker        "libcrypto",
273*00c7fec1SAndroid Build Coastguard Worker    ],
274*00c7fec1SAndroid Build Coastguard Worker}
275*00c7fec1SAndroid Build Coastguard Worker
276*00c7fec1SAndroid Build Coastguard Worker//
277*00c7fec1SAndroid Build Coastguard Worker// Build host libfastboot.
278*00c7fec1SAndroid Build Coastguard Worker//
279*00c7fec1SAndroid Build Coastguard Worker
280*00c7fec1SAndroid Build Coastguard Workercc_library_host_static {
281*00c7fec1SAndroid Build Coastguard Worker    name: "libfastboot",
282*00c7fec1SAndroid Build Coastguard Worker    defaults: ["fastboot_host_defaults"],
283*00c7fec1SAndroid Build Coastguard Worker
284*00c7fec1SAndroid Build Coastguard Worker    srcs: [
285*00c7fec1SAndroid Build Coastguard Worker        "bootimg_utils.cpp",
286*00c7fec1SAndroid Build Coastguard Worker        "fastboot_driver.cpp",
287*00c7fec1SAndroid Build Coastguard Worker        "fastboot.cpp",
288*00c7fec1SAndroid Build Coastguard Worker        "filesystem.cpp",
289*00c7fec1SAndroid Build Coastguard Worker        "fs.cpp",
290*00c7fec1SAndroid Build Coastguard Worker        "socket.cpp",
291*00c7fec1SAndroid Build Coastguard Worker        "storage.cpp",
292*00c7fec1SAndroid Build Coastguard Worker        "super_flash_helper.cpp",
293*00c7fec1SAndroid Build Coastguard Worker        "tcp.cpp",
294*00c7fec1SAndroid Build Coastguard Worker        "udp.cpp",
295*00c7fec1SAndroid Build Coastguard Worker        "util.cpp",
296*00c7fec1SAndroid Build Coastguard Worker        "vendor_boot_img_utils.cpp",
297*00c7fec1SAndroid Build Coastguard Worker        "task.cpp",
298*00c7fec1SAndroid Build Coastguard Worker    ],
299*00c7fec1SAndroid Build Coastguard Worker
300*00c7fec1SAndroid Build Coastguard Worker    // Only version the final binaries
301*00c7fec1SAndroid Build Coastguard Worker    use_version_lib: false,
302*00c7fec1SAndroid Build Coastguard Worker    static_libs: ["libbuildversion"],
303*00c7fec1SAndroid Build Coastguard Worker    header_libs: [
304*00c7fec1SAndroid Build Coastguard Worker        "avb_headers",
305*00c7fec1SAndroid Build Coastguard Worker        "libstorage_literals_headers",
306*00c7fec1SAndroid Build Coastguard Worker    ],
307*00c7fec1SAndroid Build Coastguard Worker
308*00c7fec1SAndroid Build Coastguard Worker    generated_headers: ["platform_tools_version"],
309*00c7fec1SAndroid Build Coastguard Worker
310*00c7fec1SAndroid Build Coastguard Worker    tidy_flags: [
311*00c7fec1SAndroid Build Coastguard Worker        // DO NOT add quotes around header-filter flag regex argument,
312*00c7fec1SAndroid Build Coastguard Worker        // because build/soong will add quotes around the whole flag.
313*00c7fec1SAndroid Build Coastguard Worker        "-header-filter=(system/core/fastboot/|development/host/windows/usb/api/)",
314*00c7fec1SAndroid Build Coastguard Worker    ],
315*00c7fec1SAndroid Build Coastguard Worker
316*00c7fec1SAndroid Build Coastguard Worker    target: {
317*00c7fec1SAndroid Build Coastguard Worker        windows: {
318*00c7fec1SAndroid Build Coastguard Worker            srcs: ["usb_windows.cpp"],
319*00c7fec1SAndroid Build Coastguard Worker
320*00c7fec1SAndroid Build Coastguard Worker            include_dirs: ["development/host/windows/usb/api"],
321*00c7fec1SAndroid Build Coastguard Worker        },
322*00c7fec1SAndroid Build Coastguard Worker        darwin: {
323*00c7fec1SAndroid Build Coastguard Worker            srcs: ["usb_osx.cpp"],
324*00c7fec1SAndroid Build Coastguard Worker        },
325*00c7fec1SAndroid Build Coastguard Worker        linux: {
326*00c7fec1SAndroid Build Coastguard Worker            srcs: ["usb_linux.cpp"],
327*00c7fec1SAndroid Build Coastguard Worker        },
328*00c7fec1SAndroid Build Coastguard Worker    },
329*00c7fec1SAndroid Build Coastguard Worker}
330*00c7fec1SAndroid Build Coastguard Worker
331*00c7fec1SAndroid Build Coastguard Worker//
332*00c7fec1SAndroid Build Coastguard Worker// Build host fastboot / fastboot.exe
333*00c7fec1SAndroid Build Coastguard Worker//
334*00c7fec1SAndroid Build Coastguard Worker
335*00c7fec1SAndroid Build Coastguard Workercc_binary_host {
336*00c7fec1SAndroid Build Coastguard Worker    name: "fastboot",
337*00c7fec1SAndroid Build Coastguard Worker    defaults: ["fastboot_host_defaults"],
338*00c7fec1SAndroid Build Coastguard Worker
339*00c7fec1SAndroid Build Coastguard Worker    srcs: ["main.cpp"],
340*00c7fec1SAndroid Build Coastguard Worker    static_libs: ["libfastboot"],
341*00c7fec1SAndroid Build Coastguard Worker
342*00c7fec1SAndroid Build Coastguard Worker    required: [
343*00c7fec1SAndroid Build Coastguard Worker        "mke2fs",
344*00c7fec1SAndroid Build Coastguard Worker        "make_f2fs",
345*00c7fec1SAndroid Build Coastguard Worker        "make_f2fs_casefold",
346*00c7fec1SAndroid Build Coastguard Worker    ],
347*00c7fec1SAndroid Build Coastguard Worker    dist: {
348*00c7fec1SAndroid Build Coastguard Worker        targets: [
349*00c7fec1SAndroid Build Coastguard Worker            "dist_files",
350*00c7fec1SAndroid Build Coastguard Worker            "sdk",
351*00c7fec1SAndroid Build Coastguard Worker            "sdk-repo-platform-tools",
352*00c7fec1SAndroid Build Coastguard Worker            "sdk_repo",
353*00c7fec1SAndroid Build Coastguard Worker            "win_sdk",
354*00c7fec1SAndroid Build Coastguard Worker        ],
355*00c7fec1SAndroid Build Coastguard Worker    },
356*00c7fec1SAndroid Build Coastguard Worker
357*00c7fec1SAndroid Build Coastguard Worker    target: {
358*00c7fec1SAndroid Build Coastguard Worker        not_windows: {
359*00c7fec1SAndroid Build Coastguard Worker            required: [
360*00c7fec1SAndroid Build Coastguard Worker                "mke2fs.conf",
361*00c7fec1SAndroid Build Coastguard Worker            ],
362*00c7fec1SAndroid Build Coastguard Worker        },
363*00c7fec1SAndroid Build Coastguard Worker        windows: {
364*00c7fec1SAndroid Build Coastguard Worker            required: ["AdbWinUsbApi"],
365*00c7fec1SAndroid Build Coastguard Worker            shared_libs: ["AdbWinApi"],
366*00c7fec1SAndroid Build Coastguard Worker        },
367*00c7fec1SAndroid Build Coastguard Worker    },
368*00c7fec1SAndroid Build Coastguard Worker}
369*00c7fec1SAndroid Build Coastguard Worker
370*00c7fec1SAndroid Build Coastguard Worker//
371*00c7fec1SAndroid Build Coastguard Worker// Build host fastboot_test.
372*00c7fec1SAndroid Build Coastguard Worker//
373*00c7fec1SAndroid Build Coastguard Worker
374*00c7fec1SAndroid Build Coastguard Workercc_test_host {
375*00c7fec1SAndroid Build Coastguard Worker    name: "fastboot_test",
376*00c7fec1SAndroid Build Coastguard Worker    defaults: ["fastboot_host_defaults"],
377*00c7fec1SAndroid Build Coastguard Worker
378*00c7fec1SAndroid Build Coastguard Worker    srcs: [
379*00c7fec1SAndroid Build Coastguard Worker        "fastboot_driver_test.cpp",
380*00c7fec1SAndroid Build Coastguard Worker        "fastboot_test.cpp",
381*00c7fec1SAndroid Build Coastguard Worker        "socket_mock.cpp",
382*00c7fec1SAndroid Build Coastguard Worker        "socket_test.cpp",
383*00c7fec1SAndroid Build Coastguard Worker        "super_flash_helper_test.cpp",
384*00c7fec1SAndroid Build Coastguard Worker        "task_test.cpp",
385*00c7fec1SAndroid Build Coastguard Worker        "tcp_test.cpp",
386*00c7fec1SAndroid Build Coastguard Worker        "udp_test.cpp",
387*00c7fec1SAndroid Build Coastguard Worker    ],
388*00c7fec1SAndroid Build Coastguard Worker
389*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
390*00c7fec1SAndroid Build Coastguard Worker        "libfastboot",
391*00c7fec1SAndroid Build Coastguard Worker        "libgmock",
392*00c7fec1SAndroid Build Coastguard Worker    ],
393*00c7fec1SAndroid Build Coastguard Worker
394*00c7fec1SAndroid Build Coastguard Worker    target: {
395*00c7fec1SAndroid Build Coastguard Worker        windows: {
396*00c7fec1SAndroid Build Coastguard Worker            shared_libs: ["AdbWinApi"],
397*00c7fec1SAndroid Build Coastguard Worker        },
398*00c7fec1SAndroid Build Coastguard Worker        windows_x86_64: {
399*00c7fec1SAndroid Build Coastguard Worker            // Avoid trying to build for win64
400*00c7fec1SAndroid Build Coastguard Worker            enabled: false,
401*00c7fec1SAndroid Build Coastguard Worker        },
402*00c7fec1SAndroid Build Coastguard Worker    },
403*00c7fec1SAndroid Build Coastguard Worker
404*00c7fec1SAndroid Build Coastguard Worker    test_suites: ["general-tests"],
405*00c7fec1SAndroid Build Coastguard Worker
406*00c7fec1SAndroid Build Coastguard Worker    data: [
407*00c7fec1SAndroid Build Coastguard Worker        "testdata/super.img",
408*00c7fec1SAndroid Build Coastguard Worker        "testdata/super_empty.img",
409*00c7fec1SAndroid Build Coastguard Worker        "testdata/system.img",
410*00c7fec1SAndroid Build Coastguard Worker    ],
411*00c7fec1SAndroid Build Coastguard Worker}
412*00c7fec1SAndroid Build Coastguard Worker
413*00c7fec1SAndroid Build Coastguard Workercc_test_host {
414*00c7fec1SAndroid Build Coastguard Worker    name: "fastboot_vendor_boot_img_utils_test",
415*00c7fec1SAndroid Build Coastguard Worker    srcs: ["vendor_boot_img_utils_test.cpp"],
416*00c7fec1SAndroid Build Coastguard Worker    static_libs: [
417*00c7fec1SAndroid Build Coastguard Worker        "libbase",
418*00c7fec1SAndroid Build Coastguard Worker        "libfastboot",
419*00c7fec1SAndroid Build Coastguard Worker        "libgmock",
420*00c7fec1SAndroid Build Coastguard Worker        "liblog",
421*00c7fec1SAndroid Build Coastguard Worker    ],
422*00c7fec1SAndroid Build Coastguard Worker    header_libs: [
423*00c7fec1SAndroid Build Coastguard Worker        "avb_headers",
424*00c7fec1SAndroid Build Coastguard Worker        "bootimg_headers",
425*00c7fec1SAndroid Build Coastguard Worker    ],
426*00c7fec1SAndroid Build Coastguard Worker    cflags: [
427*00c7fec1SAndroid Build Coastguard Worker        "-Wall",
428*00c7fec1SAndroid Build Coastguard Worker        "-Werror",
429*00c7fec1SAndroid Build Coastguard Worker    ],
430*00c7fec1SAndroid Build Coastguard Worker    data: [
431*00c7fec1SAndroid Build Coastguard Worker        ":fastboot_test_dtb",
432*00c7fec1SAndroid Build Coastguard Worker        ":fastboot_test_dtb_replace",
433*00c7fec1SAndroid Build Coastguard Worker        ":fastboot_test_bootconfig",
434*00c7fec1SAndroid Build Coastguard Worker        ":fastboot_test_vendor_ramdisk_none",
435*00c7fec1SAndroid Build Coastguard Worker        ":fastboot_test_vendor_ramdisk_platform",
436*00c7fec1SAndroid Build Coastguard Worker        ":fastboot_test_vendor_ramdisk_replace",
437*00c7fec1SAndroid Build Coastguard Worker        ":fastboot_test_vendor_boot_v3",
438*00c7fec1SAndroid Build Coastguard Worker        ":fastboot_test_vendor_boot_v4_without_frag",
439*00c7fec1SAndroid Build Coastguard Worker        ":fastboot_test_vendor_boot_v4_with_frag",
440*00c7fec1SAndroid Build Coastguard Worker    ],
441*00c7fec1SAndroid Build Coastguard Worker}
442*00c7fec1SAndroid Build Coastguard Worker
443*00c7fec1SAndroid Build Coastguard Workercc_library_headers {
444*00c7fec1SAndroid Build Coastguard Worker    name: "fastboot_headers",
445*00c7fec1SAndroid Build Coastguard Worker    host_supported: true,
446*00c7fec1SAndroid Build Coastguard Worker    export_include_dirs: ["."],
447*00c7fec1SAndroid Build Coastguard Worker}
448*00c7fec1SAndroid Build Coastguard Worker
449*00c7fec1SAndroid Build Coastguard Workerpython_test_host {
450*00c7fec1SAndroid Build Coastguard Worker    name: "fastboot_integration_test",
451*00c7fec1SAndroid Build Coastguard Worker    main: "test_fastboot.py",
452*00c7fec1SAndroid Build Coastguard Worker    srcs: ["test_fastboot.py"],
453*00c7fec1SAndroid Build Coastguard Worker    data: [":fastboot"],
454*00c7fec1SAndroid Build Coastguard Worker    test_config: "fastboot_integration_test.xml",
455*00c7fec1SAndroid Build Coastguard Worker    test_options: {
456*00c7fec1SAndroid Build Coastguard Worker        unit_test: false,
457*00c7fec1SAndroid Build Coastguard Worker    },
458*00c7fec1SAndroid Build Coastguard Worker}
459