llm-ocr/CMakeLists.txt
wangjue cdcd1f7202 feat: implement OCR tool using llama.cpp multimodal API
- Support GLM-OCR model with -m (model) and --mmproj (mmproj) options
- Custom prompt support via -p (default: OCR)
- Greedy/temperature sampling with --temp flag
- JSON output with --json flag
- GPU acceleration via -ngl option
- Use correct GLM-OCR chat template format for prompt construction
2026-05-29 14:57:37 +08:00

38 lines
1.1 KiB
CMake

cmake_minimum_required(VERSION 3.15)
project(ocr VERSION 1.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(DEPS_DIR "${CMAKE_SOURCE_DIR}/deps/llama.cpp")
find_library(LLAMA_LIB llama PATHS "${DEPS_DIR}/lib" NO_DEFAULT_PATH)
find_library(MTMD_LIB mtmd PATHS "${DEPS_DIR}/lib" NO_DEFAULT_PATH)
find_library(GGML_LIB ggml PATHS "${DEPS_DIR}/lib" NO_DEFAULT_PATH)
find_library(GGML_BASE ggml-base PATHS "${DEPS_DIR}/lib" NO_DEFAULT_PATH)
find_library(GGML_CPU ggml-cpu PATHS "${DEPS_DIR}/lib" NO_DEFAULT_PATH)
if(NOT LLAMA_LIB OR NOT MTMD_LIB)
message(FATAL_ERROR "libraries not found in ${DEPS_DIR}/lib")
endif()
add_executable(ocr main.cpp)
target_include_directories(ocr PRIVATE "${DEPS_DIR}/include")
set(CUDA_DIR "${DEPS_DIR}/usr/local/cuda-12.2")
set_target_properties(ocr PROPERTIES
BUILD_RPATH "${DEPS_DIR}/lib;${CUDA_DIR}/targets/x86_64-linux/lib"
INSTALL_RPATH "${DEPS_DIR}/lib;${CUDA_DIR}/targets/x86_64-linux/lib"
)
target_link_libraries(ocr PRIVATE
${LLAMA_LIB}
${MTMD_LIB}
${GGML_LIB}
${GGML_BASE}
${GGML_CPU}
pthread
dl
stdc++fs
)