Files
MINGW-packages/mingw-w64-android-tools/0001-android-tools-cmake.patch
Biswapriyo Nath c6be09a849 android-tools: update to 34.0.4
* Changes:
  - 0001: Enable building liblp for fastboot.
  - 0002: Remove some upstream hunks and fix libziparchive.
2023-09-04 10:59:34 +05:30

351 lines
10 KiB
Diff

--- a/vendor/CMakeLists.adb.txt
+++ b/vendor/CMakeLists.adb.txt
@@ -29,23 +29,37 @@
adb/pairing_connection/pairing_connection.cpp
adb/services.cpp
adb/socket_spec.cpp
- adb/sysdeps_unix.cpp
adb/sysdeps/errno.cpp
- adb/sysdeps/posix/network.cpp
${ADB_APP_PROCESSES_PROTO_SRCS} ${ADB_APP_PROCESSES_PROTO_HDRS}
${ADB_KNOWN_HOSTS_PROTO_SRCS} ${ADB_KNOWN_HOSTS_PROTO_HDRS}
${ADB_KEY_TYPE_PROTO_SRCS} ${ADB_KEY_TYPE_PROTO_HDRS}
${ADB_PAIRING_PROTO_SRCS} ${ADB_PAIRING_PROTO_HDRS})
-if(APPLE)
+if(WIN32)
+ list(APPEND libadb_SOURCES
+ adb/client/usb_windows.cpp
+ adb/sysdeps_win32.cpp
+ adb/sysdeps/win32/errno.cpp
+ adb/sysdeps/win32/stat.cpp)
+elseif(APPLE)
list(APPEND libadb_SOURCES
- adb/client/usb_osx.cpp)
+ adb/client/usb_osx.cpp
+ adb/sysdeps_unix.cpp
+ adb/sysdeps/posix/network.cpp)
else()
list(APPEND libadb_SOURCES
- adb/client/usb_linux.cpp)
+ adb/client/usb_linux.cpp
+ adb/sysdeps_unix.cpp
+ adb/sysdeps/posix/network.cpp)
endif()
add_library(libadb STATIC ${libadb_SOURCES})
+if(WIN32)
+ target_compile_definitions(libadb PRIVATE
+ UNICODE _UNICODE _POSIX _POSIX_SOURCE)
+target_include_directories(libadb PUBLIC
+ development/host/windows/usb/api)
+endif()
target_compile_definitions(libadb PRIVATE -D_GNU_SOURCE)
target_compile_definitions(libadb PUBLIC -DADB_HOST=1)
target_include_directories(libadb PUBLIC
@@ -98,37 +112,50 @@
target_compile_definitions(liblog PRIVATE
-DLIBLOG_LOG_TAG=1006 -D_XOPEN_SOURCE=700 -DFAKE_LOG_DEVICE=1)
+if(WIN32)
+ target_compile_definitions(liblog PRIVATE WIN32_LEAN_AND_MEAN)
+endif()
target_include_directories(liblog PUBLIC
core/include
logging/liblog/include
core/libcutils/include
libbase/include)
-add_library(libcutils STATIC
- core/libcutils/android_get_control_file.cpp
- core/libcutils/ashmem-host.cpp
- core/libcutils/canned_fs_config.cpp
+set(libcutils_SOURCES
core/libcutils/config_utils.cpp
- core/libcutils/fs.cpp
- core/libcutils/fs_config.cpp
- core/libcutils/hashmap.cpp
core/libcutils/iosched_policy.cpp
core/libcutils/load_file.cpp
- core/libcutils/multiuser.cpp
core/libcutils/native_handle.cpp
core/libcutils/properties.cpp
core/libcutils/record_stream.cpp
- core/libcutils/socket_inaddr_any_server_unix.cpp
- core/libcutils/socket_local_client_unix.cpp
- core/libcutils/socket_local_server_unix.cpp
- core/libcutils/socket_network_client_unix.cpp
- core/libcutils/sockets_unix.cpp
core/libcutils/sockets.cpp
- core/libcutils/str_parms.cpp
core/libcutils/strlcpy.c
- core/libcutils/trace-host.cpp
- core/libcutils/threads.cpp)
+ core/libcutils/threads.cpp
+ core/libcutils/trace-host.cpp)
+
+if(WIN32)
+ list(APPEND libcutils_SOURCES
+ core/libcutils/socket_inaddr_any_server_windows.cpp
+ core/libcutils/socket_network_client_windows.cpp
+ core/libcutils/sockets_windows.cpp)
+else()
+ list(APPEND libcutils_SOURCES
+ core/libcutils/android_get_control_file.cpp
+ core/libcutils/ashmem-host.cpp
+ core/libcutils/canned_fs_config.cpp
+ core/libcutils/fs.cpp
+ core/libcutils/fs_config.cpp
+ core/libcutils/hashmap.cpp
+ core/libcutils/multiuser.cpp
+ core/libcutils/socket_inaddr_any_server_unix.cpp
+ core/libcutils/socket_local_client_unix.cpp
+ core/libcutils/socket_local_server_unix.cpp
+ core/libcutils/socket_network_client_unix.cpp
+ core/libcutils/sockets_unix.cpp
+ core/libcutils/str_parms.cpp)
+endif()
+add_library(libcutils STATIC ${libcutils_SOURCES})
target_compile_definitions(libcutils PRIVATE -D_GNU_SOURCE)
target_include_directories(libcutils PRIVATE
logging/liblog/include core/libutils/include)
@@ -155,7 +182,7 @@
target_include_directories(libcrypto PUBLIC
core/libcrypto_utils/include boringssl/include)
-add_executable(adb
+set(adb_SOURCES
adb/adb.cpp
adb/adb_io.cpp
adb/adb_listeners.cpp
@@ -164,7 +191,6 @@
adb/adb_utils.cpp
adb/fdevent/fdevent.cpp
adb/fdevent/fdevent_poll.cpp
- adb/fdevent/fdevent_epoll.cpp
adb/shell_service_protocol.cpp
adb/sockets.cpp
adb/socket_spec.cpp
@@ -175,6 +201,18 @@
adb/types.cpp
${ADB_KEY_TYPE_PROTO_HDRS})
+if(WIN32)
+ list(APPEND adb_SOURCES
+ )
+else()
+ list(APPEND adb_SOURCES
+ adb/fdevent/fdevent_epoll.cpp)
+endif()
+
+add_executable(adb ${adb_SOURCES})
+if(WIN32)
+ target_compile_definitions(adb PRIVATE _GNU_SOURCE _POSIX _POSIX_SOURCE)
+endif()
target_include_directories(adb PRIVATE
core/include libbase/include adb
core/libcrypto_utils/include boringssl/include)
@@ -200,6 +238,11 @@
PkgConfig::libusb-1.0
z
PkgConfig::libzstd)
+if(WIN32)
+ add_dependencies(adb AdbWinApi)
+ target_link_libraries(adb "${ADBWINAPI_LIBRARY}" ws2_32)
+ set_target_properties(adb PROPERTIES LINK_FLAGS "-municode")
+endif()
if(APPLE)
target_link_libraries(adb
--- a/vendor/CMakeLists.fastboot.txt
+++ b/vendor/CMakeLists.fastboot.txt
@@ -38,6 +38,7 @@
# Only add common sources from libselinux_defaults and libselinux
# See the file list in selinux/libselinux/Android.bp
+if(NOT WIN32)
add_library(libselinux STATIC
selinux/libselinux/src/booleans.c
selinux/libselinux/src/callbacks.c
@@ -94,6 +95,7 @@
target_include_directories(libsepol PUBLIC
selinux/libsepol/include)
+endif(NOT WIN32)
set(fastboot_SOURCES
core/fastboot/bootimg_utils.cpp
@@ -111,7 +113,10 @@
core/fastboot/vendor_boot_img_utils.cpp
core/fastboot/util.cpp)
-if(APPLE)
+if(WIN32)
+ list(APPEND fastboot_SOURCES
+ core/fastboot/usb_windows.cpp)
+elseif(APPLE)
list(APPEND fastboot_SOURCES
core/fastboot/usb_osx.cpp)
else()
@@ -125,13 +130,24 @@
extras/ext4_utils/include extras/f2fs_utils
core/libziparchive/include mkbootimg/include/bootimg
core/fs_mgr/liblp/include core/fs_mgr/libstorage_literals avb)
+if(WIN32)
+ target_compile_definitions(fastboot PRIVATE WIN32_LEAN_AND_MEAN)
+ target_include_directories(fastboot PRIVATE development/host/windows/usb/api)
+endif()
target_compile_definitions(fastboot PRIVATE
-D_GNU_SOURCE -D_XOPEN_SOURCE=700 -DUSE_F2FS
-DANDROID_MKE2FS_NAME="${ANDROID_MKE2FS_NAME}")
target_link_libraries(fastboot
libsparse libzip libcutils liblog liblp libutil
- libbase libext4 libselinux libsepol libdiagnoseusb crypto
- z PkgConfig::libpcre2-8 Threads::Threads dl)
+ libbase libext4 libdiagnoseusb crypto
+ z PkgConfig::libpcre2-8 Threads::Threads)
+if(WIN32)
+ add_dependencies(fastboot AdbWinApi)
+ target_link_libraries(fastboot "${ADBWINAPI_LIBRARY}")
+else()
+ target_link_libraries(fastboot
+ libselinux libsepol dl)
+endif()
if(APPLE)
target_link_libraries(fastboot
--- a/vendor/CMakeLists.libbase.txt
+++ b/vendor/CMakeLists.libbase.txt
@@ -1,7 +1,6 @@
-add_library(libbase STATIC
- libbase/abi_compatibility.cpp
+set(libbase_SOURCES
+ libbase/abi_compatibility.cpp
libbase/chrono_utils.cpp
- libbase/cmsg.cpp
libbase/file.cpp
libbase/hex.cpp
libbase/logging.cpp
@@ -14,9 +13,19 @@
libbase/stringprintf.cpp
libbase/strings.cpp
libbase/threads.cpp
- libbase/test_utils.cpp
- libbase/errors_unix.cpp)
+ libbase/test_utils.cpp)
+if(WIN32)
+ list(APPEND libbase_SOURCES
+ libbase/errors_windows.cpp
+ libbase/utf8.cpp)
+else()
+ list(APPEND libbase_SOURCES
+ libbase/cmsg.cpp
+ libbase/errors_unix.cpp)
+endif()
+
+add_library(libbase STATIC ${libbase_SOURCES})
target_include_directories(libbase PUBLIC
libbase/include core/include)
target_link_libraries(libbase PUBLIC fmt::fmt liblog)
--- a/vendor/CMakeLists.mkbootimg.txt
+++ b/vendor/CMakeLists.mkbootimg.txt
@@ -1,7 +1,7 @@
set(MKBOOTIMG_SCRIPTS_DIR "${CMAKE_INSTALL_FULL_DATADIR}/android-tools/mkbootimg")
install(PROGRAMS mkbootimg/mkbootimg.py DESTINATION ${MKBOOTIMG_SCRIPTS_DIR})
-add_custom_target(mkbootimg_symlink ALL COMMAND ${CMAKE_COMMAND} -E create_symlink
- ${MKBOOTIMG_SCRIPTS_DIR}/mkbootimg.py
+add_custom_target(mkbootimg_symlink ALL COMMAND ${CMAKE_COMMAND} -E copy
+ ${CMAKE_CURRENT_SOURCE_DIR}/mkbootimg/mkbootimg.py
${CMAKE_CURRENT_BINARY_DIR}/mkbootimg)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mkbootimg DESTINATION bin)
install(FILES mkbootimg/gki/generate_gki_certificate.py DESTINATION ${MKBOOTIMG_SCRIPTS_DIR}/gki)
--- a/vendor/CMakeLists.partition.txt
+++ b/vendor/CMakeLists.partition.txt
@@ -15,6 +15,7 @@
target_include_directories(liblp PUBLIC
core/fs_mgr/liblp/include)
+if(NOT WIN32)
protobuf_generate_cpp(DYNAMIC_PARTITIONS_DEVICE_INFO_PROTO_SRCS DYNAMIC_PARTITIONS_DEVICE_INFO_PROTO_HDRS
extras/partition_tools/dynamic_partitions_device_info.proto)
@@ -54,3 +55,4 @@
extras/partition_tools/lpunpack.cc)
target_link_libraries(lpunpack
libbase liblog liblp libsparse)
+endif(NOT WIN32)
--- a/vendor/CMakeLists.sparse.txt
+++ b/vendor/CMakeLists.sparse.txt
@@ -24,3 +24,6 @@
core/libsparse/append2simg.cpp)
target_link_libraries(append2simg
libsparse z libbase)
+if(WIN32)
+ target_compile_definitions(append2simg PRIVATE _GNU_SOURCE)
+endif()
--- a/vendor/CMakeLists.txt
+++ b/vendor/CMakeLists.txt
@@ -75,7 +75,7 @@
find_package(Protobuf CONFIG)
find_package(Protobuf REQUIRED)
-set(THREADS_PREFER_PTHREAD_FLAG ON)
+#set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
check_symbol_exists(strlcpy "string.h" HAVE_STRLCPY)
@@ -84,33 +84,48 @@
include_directories(${PROTOBUF_INCLUDE_DIRS})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
+if(WIN32)
+ set(ADBWINAPI_LIBRARY "${CMAKE_CURRENT_BINARY_DIR}/AdbWinApi.dll.a")
+ add_custom_command(
+ OUTPUT "${ADBWINAPI_LIBRARY}"
+ COMMAND dlltool -d "${CMAKE_CURRENT_SOURCE_DIR}/AdbWinApi.def" -l "${ADBWINAPI_LIBRARY}"
+ DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/AdbWinApi.def")
+ add_custom_target(AdbWinApi DEPENDS "${ADBWINAPI_LIBRARY}")
+endif(WIN32)
+
include(CMakeLists.libbase.txt)
include(CMakeLists.libandroidfw.txt)
include(CMakeLists.adb.txt)
include(CMakeLists.sparse.txt)
include(CMakeLists.fastboot.txt)
-include(CMakeLists.mke2fs.txt)
include(CMakeLists.partition.txt)
include(CMakeLists.mkbootimg.txt)
include(CMakeLists.libufdt.txt)
include(CMakeLists.avb.txt)
+if(NOT WIN32)
+ include(CMakeLists.mke2fs.txt)
+endif()
# Targets which should be installed by `make install`.
install(TARGETS
- "${ANDROID_MKE2FS_NAME}"
adb
append2simg
fastboot
img2simg
+ simg2img
+ DESTINATION bin)
+if(NOT WIN32)
+install(TARGETS
+ "${ANDROID_MKE2FS_NAME}"
lpadd
lpdump
lpflash
lpmake
lpunpack
- simg2img
e2fsdroid
ext2simg
DESTINATION bin)
+endif()
# Install common completion files.
install(FILES adb/adb.bash RENAME adb DESTINATION "${COMPLETION_COMMON_DIR}")