Feat: Android client Phase 0-3 full implementation
This commit was merged in pull request #3.
This commit is contained in:
1 parent
837d89c8b5
commit
45553ec5b6
53 files changed
+3321
-27
No files matched your search
@@ -0,0 +1,56 @@
|
||||
cmake_minimum_required(VERSION 3.22)
|
||||
project(yama_client LANGUAGES CXX C)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
# YAMA 根目录(相对于本文件:cpp/ → main/ → src/ → app/ → android/ → YAMA/)
|
||||
get_filename_component(YAMA_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../" ABSOLUTE)
|
||||
|
||||
# ---- 头文件搜索路径(与 linux/CMakeLists.txt 同构)----
|
||||
include_directories(
|
||||
${YAMA_ROOT}
|
||||
${YAMA_ROOT}/client
|
||||
${YAMA_ROOT}/compress
|
||||
${CMAKE_CURRENT_SOURCE_DIR} # android_compat.h
|
||||
)
|
||||
|
||||
# ---- 强制注入兼容头(替代修改共用源文件)----
|
||||
add_compile_options(-include "${CMAKE_CURRENT_SOURCE_DIR}/android_compat.h")
|
||||
|
||||
# ---- 核心源文件(与 linux/CMakeLists.txt 相同)----
|
||||
set(CORE_SOURCES
|
||||
${YAMA_ROOT}/client/Buffer.cpp
|
||||
${YAMA_ROOT}/client/IOCPClient.cpp
|
||||
${YAMA_ROOT}/client/sign_shim_unix.cpp
|
||||
${YAMA_ROOT}/common/ikcp.c
|
||||
)
|
||||
|
||||
# ---- Android NDK 入口 ----
|
||||
set(ANDROID_SOURCES
|
||||
main.cpp
|
||||
)
|
||||
|
||||
add_library(yama SHARED ${CORE_SOURCES} ${ANDROID_SOURCES})
|
||||
|
||||
# ---- 预编译静态库(由 SimplePlugins/sign_lib/build_android.sh 产出)----
|
||||
target_link_libraries(yama PRIVATE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}/libsign.a"
|
||||
)
|
||||
|
||||
# ---- zstd(由 android/build_zstd_android.sh 产出)----
|
||||
target_link_libraries(yama PRIVATE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}/libzstd.a"
|
||||
)
|
||||
|
||||
# ---- Android 系统库 ----
|
||||
target_link_libraries(yama PRIVATE android log)
|
||||
|
||||
# ---- 编译选项 ----
|
||||
target_compile_options(yama PRIVATE
|
||||
-O2
|
||||
-fvisibility=hidden
|
||||
-Wno-unused-parameter
|
||||
-Wno-missing-field-initializers
|
||||
)
|
||||
Reference in new issue
Block a user