Skip to content

Commit

Permalink
feat: support Android (#19)
Browse files Browse the repository at this point in the history
  • Loading branch information
MistEO authored Dec 21, 2023
1 parent ca0ad45 commit c5d386a
Show file tree
Hide file tree
Showing 16 changed files with 95 additions and 81 deletions.
11 changes: 9 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@ jobs:
matrix:
os: [ubuntu, windows, macos]
arch: [x64, arm64]
include:
- os: ubuntu
arch: arm64-android
# clang-17: error: unsupported argument 'i686' to option '-march='
# https://github.com/MaaAssistantArknights/MaaDeps/actions/runs/7285060481/job/19851366697
# - os: ubuntu
# arch: x64-android
fail-fast: false
defaults:
run:
Expand Down Expand Up @@ -62,7 +69,7 @@ jobs:
if: contains(matrix.arch, 'android')
id: setup-ndk
with:
ndk-version: r25b
ndk-version: r26b
add-to-path: false

- name: Install Packages on MacOS
Expand Down Expand Up @@ -161,7 +168,7 @@ jobs:
done
- name: Collect Logs
if: always()
if: always()
run: |
shopt -s globstar
tar caf logs.tar --ignore-failed-read vcpkg/buildtrees/**/*.log
Expand Down
3 changes: 2 additions & 1 deletion build.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,8 @@ def sdk_filter(info: tarfile.TarInfo):
sdk_filter = None
with tarfile.TarFile.open(f"tarball/MaaDeps-{tarball_triplet}-devel.tar.xz", 'w:xz') as sdktar:
sdktar.add(f"./vcpkg/installed/{vcpkg.triplet}", filter=sdk_filter)
sdktar.add(f"./vcpkg/installed/{vcpkg.triplet.removeprefix('maa-').replace('arm64', 'x64')}/tools")
if 'android' not in session.target:
sdktar.add(f"./vcpkg/installed/{vcpkg.triplet.removeprefix('maa-').replace('arm64', 'x64')}/tools")

for f in extra_files:
sdktar.add(f)
Expand Down
2 changes: 1 addition & 1 deletion vcpkg
Submodule vcpkg updated 1947 files
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm64)

set(CMAKE_C_FLAGS "-fPIC" CACHE INTERNAL "")
set(CMAKE_CXX_FLAGS "-fPIC" CACHE INTERNAL "")

if(NOT CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL CMAKE_SYSTEM_PROCESSOR OR
NOT CMAKE_HOST_SYSTEM_NAME STREQUAL CMAKE_SYSTEM_NAME)
set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm64)

set(CMAKE_C_FLAGS "-fPIC" CACHE INTERNAL "")
set(CMAKE_CXX_FLAGS "-fPIC" CACHE INTERNAL "")

if(NOT CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL CMAKE_SYSTEM_PROCESSOR OR
NOT CMAKE_HOST_SYSTEM_NAME STREQUAL CMAKE_SYSTEM_NAME)
set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)
endif()
5 changes: 5 additions & 0 deletions vcpkg-overlay/triplets/maa-android-library-override.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
if(PORT MATCHES "onnxruntime")
message("add -Wno-error=shorten-64-to-32 for ${PORT}")
string(APPEND VCPKG_C_FLAGS "-Wno-error=shorten-64-to-32")
string(APPEND VCPKG_CXX_FLAGS "-Wno-error=shorten-64-to-32")
endif()
21 changes: 11 additions & 10 deletions vcpkg-overlay/triplets/maa-arm64-android.cmake
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
set(VCPKG_TARGET_ARCHITECTURE arm64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_CMAKE_SYSTEM_NAME Android)
set(VCPKG_CMAKE_SYSTEM_VERSION 23)
set(VCPKG_BUILD_TYPE release)
set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-linux-android")
set(VCPKG_CMAKE_CONFIGURE_OPTIONS ${VCPKG_CMAKE_CONFIGURE_OPTIONS} -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=OFF
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,-s")

include(${CMAKE_CURRENT_LIST_DIR}/maa-linux-library-override.cmake.inc)
set(VCPKG_TARGET_ARCHITECTURE arm64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_CMAKE_SYSTEM_NAME Android)
set(VCPKG_CMAKE_SYSTEM_VERSION 23)
set(VCPKG_BUILD_TYPE release)
set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-linux-android")
set(VCPKG_CMAKE_CONFIGURE_OPTIONS ${VCPKG_CMAKE_CONFIGURE_OPTIONS} -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=OFF
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,-s")

include(${CMAKE_CURRENT_LIST_DIR}/maa-linux-library-override.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/maa-android-library-override.cmake)
16 changes: 8 additions & 8 deletions vcpkg-overlay/triplets/maa-arm64-linux.cmake
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
set(VCPKG_TARGET_ARCHITECTURE arm64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_BUILD_TYPE release)
set(VCPKG_CMAKE_SYSTEM_NAME Linux)

set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE ${CMAKE_CURRENT_LIST_DIR}/arm64-linux.toolchain.cmake.inc)

include(${CMAKE_CURRENT_LIST_DIR}/maa-linux-library-override.cmake.inc)
set(VCPKG_TARGET_ARCHITECTURE arm64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_BUILD_TYPE release)
set(VCPKG_CMAKE_SYSTEM_NAME Linux)

set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE ${CMAKE_CURRENT_LIST_DIR}/arm64-linux.toolchain.cmake)

include(${CMAKE_CURRENT_LIST_DIR}/maa-linux-library-override.cmake)
24 changes: 12 additions & 12 deletions vcpkg-overlay/triplets/maa-arm64-osx.cmake
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
set(VCPKG_TARGET_ARCHITECTURE arm64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_BUILD_TYPE release)
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)

set(VCPKG_OSX_ARCHITECTURES arm64)
set(VCPKG_OSX_DEPLOYMENT_TARGET 11.0)

string(APPEND VCPKG_C_FLAGS "-g -DNDEBUG")
string(APPEND VCPKG_CXX_FLAGS "-g -DNDEBUG")

include(${CMAKE_CURRENT_LIST_DIR}/maa-linux-library-override.cmake.inc)
set(VCPKG_TARGET_ARCHITECTURE arm64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_BUILD_TYPE release)
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)

set(VCPKG_OSX_ARCHITECTURES arm64)
set(VCPKG_OSX_DEPLOYMENT_TARGET 11.0)

string(APPEND VCPKG_C_FLAGS "-g -DNDEBUG")
string(APPEND VCPKG_CXX_FLAGS "-g -DNDEBUG")

include(${CMAKE_CURRENT_LIST_DIR}/maa-linux-library-override.cmake)
8 changes: 4 additions & 4 deletions vcpkg-overlay/triplets/maa-arm64-windows.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
set(VCPKG_TARGET_ARCHITECTURE arm64)
set(VCPKG_CRT_LINKAGE dynamic)

include(${CMAKE_CURRENT_LIST_DIR}/maa-windows-library-override.cmake.inc)
set(VCPKG_TARGET_ARCHITECTURE arm64)
set(VCPKG_CRT_LINKAGE dynamic)

include(${CMAKE_CURRENT_LIST_DIR}/maa-windows-library-override.cmake)
19 changes: 10 additions & 9 deletions vcpkg-overlay/triplets/maa-x64-android.cmake
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_CMAKE_SYSTEM_NAME Android)
set(VCPKG_CMAKE_SYSTEM_VERSION 23)
set(VCPKG_BUILD_TYPE release)
set(VCPKG_MAKE_BUILD_TRIPLET "--host=x86_64-linux-android")
set(VCPKG_CMAKE_CONFIGURE_OPTIONS ${VCPKG_CMAKE_CONFIGURE_OPTIONS} -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=OFF)

include(${CMAKE_CURRENT_LIST_DIR}/maa-linux-library-override.cmake.inc)
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_CMAKE_SYSTEM_NAME Android)
set(VCPKG_CMAKE_SYSTEM_VERSION 23)
set(VCPKG_BUILD_TYPE release)
set(VCPKG_MAKE_BUILD_TRIPLET "--host=x86_64-linux-android")
set(VCPKG_CMAKE_CONFIGURE_OPTIONS ${VCPKG_CMAKE_CONFIGURE_OPTIONS} -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=OFF)

include(${CMAKE_CURRENT_LIST_DIR}/maa-linux-library-override.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/maa-android-library-override.cmake)
12 changes: 6 additions & 6 deletions vcpkg-overlay/triplets/maa-x64-linux.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_BUILD_TYPE release)
set(VCPKG_CMAKE_SYSTEM_NAME Linux)

include(${CMAKE_CURRENT_LIST_DIR}/maa-linux-library-override.cmake.inc)
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_BUILD_TYPE release)
set(VCPKG_CMAKE_SYSTEM_NAME Linux)

include(${CMAKE_CURRENT_LIST_DIR}/maa-linux-library-override.cmake)
24 changes: 12 additions & 12 deletions vcpkg-overlay/triplets/maa-x64-osx.cmake
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_BUILD_TYPE release)
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)

set(VCPKG_OSX_ARCHITECTURES x86_64)
set(VCPKG_OSX_DEPLOYMENT_TARGET 11.0)

string(APPEND VCPKG_C_FLAGS "-g -DNDEBUG")
string(APPEND VCPKG_CXX_FLAGS "-g -DNDEBUG")

include(${CMAKE_CURRENT_LIST_DIR}/maa-linux-library-override.cmake.inc)
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_BUILD_TYPE release)
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)

set(VCPKG_OSX_ARCHITECTURES x86_64)
set(VCPKG_OSX_DEPLOYMENT_TARGET 11.0)

string(APPEND VCPKG_C_FLAGS "-g -DNDEBUG")
string(APPEND VCPKG_CXX_FLAGS "-g -DNDEBUG")

include(${CMAKE_CURRENT_LIST_DIR}/maa-linux-library-override.cmake)
8 changes: 4 additions & 4 deletions vcpkg-overlay/triplets/maa-x64-windows.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)

include(${CMAKE_CURRENT_LIST_DIR}/maa-windows-library-override.cmake.inc)
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)

include(${CMAKE_CURRENT_LIST_DIR}/maa-windows-library-override.cmake)
3 changes: 1 addition & 2 deletions vcpkg.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
"boost-url",
"boost-uuid",
"grpc",
"protobuf",
"lua"
"protobuf"
]
}

0 comments on commit c5d386a

Please sign in to comment.