cmake_minimum_required(VERSION 3.22)
project(etheraio_mobile_ai LANGUAGES C CXX)
if(NOT EXISTS "${ETHERAIO_LLAMA_SOURCE}/include/llama.h")
 message(FATAL_ERROR "Pinned llama.cpp sources required; see mobile/README.md")
endif()
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
foreach(opt LLAMA_BUILD_TESTS LLAMA_BUILD_EXAMPLES LLAMA_BUILD_SERVER LLAMA_BUILD_TOOLS LLAMA_BUILD_COMMON LLAMA_CURL LLAMA_OPENSSL GGML_NATIVE GGML_OPENMP GGML_LLAMAFILE GGML_CPU_KLEIDIAI)
 set(${opt} OFF CACHE BOOL "" FORCE)
endforeach()
add_subdirectory("${ETHERAIO_LLAMA_SOURCE}" llama)
add_library(etheraio_ai SHARED mobile-ai.cpp)
target_compile_features(etheraio_ai PRIVATE cxx_std_17)
target_link_libraries(etheraio_ai PRIVATE llama)
target_include_directories(etheraio_ai PRIVATE "${CMAKE_CURRENT_LIST_DIR}/../../../../../../shared/low-memory-trainer" "${ETHERAIO_LLAMA_SOURCE}/vendor" "${ETHERAIO_LLAMA_SOURCE}/src")
