// Copyright (C) 2018 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // This is required because no Android.bp can include a library defined in an // Android.mk. Eventually should kill libfastboot (defined in Android.mk) cc_library_host_static { name: "libfastboot2", //host_supported: true, compile_multilib: "first", srcs: [ "bootimg_utils.cpp", "fs.cpp", "socket.cpp", "tcp.cpp", "udp.cpp", "util.cpp", "fastboot_driver.cpp", ], static_libs: [ "libziparchive", "libsparse", "libutils", "liblog", "libz", "libdiagnose_usb", "libbase", "libcutils", "libgtest", "libgtest_main", "libbase", "libadb_host", "liblp", ], header_libs: [ "bootimg_headers", ], export_header_lib_headers: [ "bootimg_headers", ], target: { linux: { srcs: ["usb_linux.cpp"], }, darwin: { srcs: ["usb_osx.cpp"], host_ldlibs: [ "-framework CoreFoundation", "-framework IOKit", ], }, windows: { srcs: ["usb_windows.cpp"], host_ldlibs: [ "-lws2_32", ], }, }, cflags: [ "-Wall", "-Wextra", "-Werror", "-Wunreachable-code", ], export_include_dirs: ["."], } cc_defaults { name: "fastboot_defaults", cflags: [ "-Wall", "-Wextra", "-Werror", "-Wvla", ], rtti: true, clang_cflags: [ "-Wthread-safety", ], } cc_binary { name: "fastbootd", defaults: ["fastboot_defaults"], recovery: true, srcs: [ "device/commands.cpp", "device/fastboot_device.cpp", "device/flashing.cpp", "device/main.cpp", "device/usb.cpp", "device/usb_client.cpp", "device/tcp_client.cpp", "device/utility.cpp", "device/variables.cpp", "socket.cpp", ], shared_libs: [ "android.hardware.boot@1.0", "android.hardware.boot@1.1", "android.hardware.fastboot@1.0", "android.hardware.health@2.0", "libasyncio", "libbase", "libbootloader_message", "libcutils", "libext2_uuid", "libext4_utils", "libfs_mgr", "libgsi", "libhidlbase", "liblog", "liblp", "libprotobuf-cpp-lite", "libsparse", "libutils", ], static_libs: [ "libgtest_prod", "libhealthhalutils", "libsnapshot_nobinder", "update_metadata-protos", ], header_libs: [ "avb_headers", "libsnapshot_headers", ] } cc_defaults { name: "fastboot_host_defaults", use_version_lib: true, cflags: [ "-Wall", "-Wextra", "-Werror", "-Wunreachable-code", ], target: { darwin: { cflags: ["-Wno-unused-parameter"], host_ldlibs: [ "-lpthread", "-framework CoreFoundation", "-framework IOKit", ], }, windows: { enabled: true, host_ldlibs: ["-lws2_32"], }, not_windows: { static_libs: [ "libext4_utils", ], }, }, stl: "libc++_static", // Don't add anything here, we don't want additional shared dependencies // on the host fastboot tool, and shared libraries that link against libc++ // will violate ODR. shared_libs: [], header_libs: [ "avb_headers", "bootimg_headers", ], static_libs: [ "libziparchive", "libsparse", "libutils", "liblog", "libz", "libdiagnose_usb", "libbase", "libcutils", "libgtest_host", "liblp", "libcrypto", ], } // // Build host libfastboot. // cc_library_host_static { name: "libfastboot", defaults: ["fastboot_host_defaults"], srcs: [ "bootimg_utils.cpp", "fastboot.cpp", "fs.cpp", "socket.cpp", "tcp.cpp", "udp.cpp", "util.cpp", "fastboot_driver.cpp", ], // Only version the final binaries use_version_lib: false, static_libs: ["libbuildversion"], generated_headers: ["platform_tools_version"], target: { windows: { srcs: ["usb_windows.cpp"], include_dirs: ["development/host/windows/usb/api"], }, darwin: { srcs: ["usb_osx.cpp"], }, linux_glibc: { srcs: ["usb_linux.cpp"], }, }, } // // Build host fastboot / fastboot.exe // cc_binary_host { name: "fastboot", defaults: ["fastboot_host_defaults"], srcs: ["main.cpp"], static_libs: ["libfastboot"], required: [ "mke2fs", "make_f2fs", ], dist: { targets: [ "dist_files", "sdk", "win_sdk", ], }, target: { not_windows: { required: [ "e2fsdroid", "mke2fs.conf", "sload_f2fs", ], }, windows: { required: ["AdbWinUsbApi"], shared_libs: ["AdbWinApi"], }, }, } // // Build host fastboot_test. // cc_test_host { name: "fastboot_test", defaults: ["fastboot_host_defaults"], srcs: [ "fastboot_test.cpp", "socket_mock.cpp", "socket_test.cpp", "tcp_test.cpp", "udp_test.cpp", ], static_libs: ["libfastboot"], target: { windows: { shared_libs: ["AdbWinApi"], }, windows_x86_64: { // Avoid trying to build for win64 enabled: false, }, }, }