- 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
38 lines
1.1 KiB
CMake
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
|
|
)
|