| // 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/utility.cpp", | |
| "device/variables.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: [ | |
| "libhealthhalutils", | |
| "libsnapshot_nobinder", | |
| ], | |
| header_libs: [ | |
| "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, | |
| }, | |
| }, | |
| } |