ASR-Android/tools/llama-jni/CMakeLists.txt

23 lines
1.0 KiB
CMake

# Builds libsummarize-llm-jni.so = llama.cpp (static) + thin JNI layer.
# llama.cpp is expected at ./llama.cpp (pinned by build_arm64.sh), NOT committed here.
cmake_minimum_required(VERSION 3.22)
project(summarize_llm_jni CXX C)
set(LLAMA_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(LLAMA_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
set(LLAMA_BUILD_SERVER OFF CACHE BOOL "" FORCE)
set(LLAMA_BUILD_UI OFF CACHE BOOL "" FORCE)
set(LLAMA_BUILD_APP OFF CACHE BOOL "" FORCE)
set(LLAMA_BUILD_COMMON OFF CACHE BOOL "" FORCE)
set(GGML_OPENMP OFF CACHE BOOL "" FORCE)
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
add_subdirectory(llama.cpp EXCLUDE_FROM_ALL)
add_library(summarize-llm-jni SHARED src/summarize_llm_jni.cpp)
target_link_libraries(summarize-llm-jni PRIVATE llama android log)
target_compile_options(summarize-llm-jni PRIVATE -O2 -fvisibility=hidden)
target_link_options(summarize-llm-jni PRIVATE
"-Wl,--build-id=sha1" "-Wl,--gc-sections" "-Wl,-z,max-page-size=16384"
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports.map")