| // 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", |
| ], |
| |
| 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_client.cpp", |
| "device/utility.cpp", |
| "device/variables.cpp", |
| ], |
| |
| shared_libs: [ |
| "android.hardware.boot@1.0", |
| "android.hardware.fastboot@1.0", |
| "libadbd", |
| "libasyncio", |
| "libbase", |
| "libbootloader_message", |
| "libcutils", |
| "libext2_uuid", |
| "libext4_utils", |
| "libfs_mgr", |
| "libhidlbase", |
| "libhidltransport", |
| "libhwbinder", |
| "liblog", |
| "liblp", |
| "libsparse", |
| "libutils", |
| ], |
| |
| cpp_std: "c++17", |
| } |
| |
| 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"], |
| }, |
| }, |
| |
| 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: ["bootimg_headers"], |
| static_libs: [ |
| "libziparchive", |
| "libsparse", |
| "libutils", |
| "liblog", |
| "libz", |
| "libdiagnose_usb", |
| "libbase", |
| "libcutils", |
| "libgtest_host", |
| ], |
| } |
| |
| // |
| // Build host libfastboot. |
| // |
| |
| cc_library_host_static { |
| name: "libfastboot", |
| defaults: ["fastboot_host_defaults"], |
| |
| cpp_std: "c++17", |
| srcs: [ |
| "bootimg_utils.cpp", |
| "engine.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", |
| ], |
| |
| 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, |
| }, |
| }, |
| } |