# T18 端侧小模型 SPIKE：liblocalllm.so
# 结构对齐社区已验证案例（turbo-ai-chat-harmonyos）：预置 libMNN.so + NAPI 薄封装。
cmake_minimum_required(VERSION 3.16)
project(localllm)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 预编译 MNN（官方 3.6.1 harmony 包，含 LLM 符号；获取方式见任务文档 T18）。
# SPIKE 阶段只支持真机 arm64-v8a；模拟器（x86_64）不在本任务范围。
add_library(mnn SHARED IMPORTED)
set_target_properties(mnn PROPERTIES
    IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/../libs/arm64-v8a/libMNN.so)

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/third_party/mnn/include)

add_library(localllm SHARED napi_init.cpp local_llm.cpp)

# ace_napi：N-API；hilog：native 侧日志（ benchmark 数据落 log 便于 hdc 抓取）
target_link_libraries(localllm PUBLIC mnn libace_napi.z.so libhilog_ndk.z.so)
