cmake_minimum_required(VERSION 3.22.1)

project(tsjet LANGUAGES C CXX)

include(FetchContent)

# --- llama.cpp (pinned) -----------------------------------------------------
# Pinned to a specific release so the JNI wrapper below always matches the API
# it was written against. Bump GIT_TAG deliberately, not casually.
set(LLAMA_BUILD_TESTS    OFF CACHE BOOL "" FORCE)
set(LLAMA_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
set(LLAMA_BUILD_TOOLS    OFF CACHE BOOL "" FORCE)
set(LLAMA_BUILD_SERVER   OFF CACHE BOOL "" FORCE)
set(LLAMA_CURL           OFF CACHE BOOL "" FORCE)
set(GGML_OPENMP          OFF CACHE BOOL "" FORCE)

FetchContent_Declare(
    llama
    GIT_REPOSITORY https://github.com/ggml-org/llama.cpp.git
    GIT_TAG        b10333
    GIT_SHALLOW    TRUE
)
FetchContent_MakeAvailable(llama)

# --- our JNI bridge ---------------------------------------------------------
add_library(tsjet SHARED llama-jni.cpp)

find_library(log-lib log)

target_compile_features(tsjet PRIVATE cxx_std_17)
target_link_libraries(tsjet PRIVATE llama ${log-lib})
