63 lines
2.1 KiB
CMake
63 lines
2.1 KiB
CMake
set(TARGET llama-run)
|
|
|
|
if (MINGW)
|
|
# fix: https://github.com/ggml-org/llama.cpp/actions/runs/9651004652/job/26617901362?pr=8006
|
|
add_compile_definitions(_WIN32_WINNT=${GGML_WIN_VER})
|
|
endif()
|
|
|
|
# Include server source files (except server.cpp which has its own main())
|
|
set(SERVER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../server)
|
|
set(READLINE_DIR ${PROJECT_SOURCE_DIR}/vendor/readline.cpp)
|
|
set(TARGET_SRCS
|
|
run.cpp
|
|
${SERVER_DIR}/server-context.cpp
|
|
${SERVER_DIR}/server-context.h
|
|
${SERVER_DIR}/server-task.cpp
|
|
${SERVER_DIR}/server-task.h
|
|
${SERVER_DIR}/server-queue.cpp
|
|
${SERVER_DIR}/server-queue.h
|
|
${SERVER_DIR}/server-common.cpp
|
|
${SERVER_DIR}/server-common.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/run-chat.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/run-chat.h
|
|
${READLINE_DIR}/src/readline.cpp
|
|
${READLINE_DIR}/src/buffer.cpp
|
|
${READLINE_DIR}/src/history.cpp
|
|
${READLINE_DIR}/src/terminal.cpp
|
|
)
|
|
|
|
add_executable(${TARGET} ${TARGET_SRCS})
|
|
|
|
# TODO: avoid copying this code block from common/CMakeLists.txt
|
|
set(LLAMA_RUN_EXTRA_LIBS "")
|
|
if (LLAMA_CURL)
|
|
find_package(CURL REQUIRED)
|
|
target_compile_definitions(${TARGET} PUBLIC LLAMA_USE_CURL)
|
|
include_directories(${CURL_INCLUDE_DIRS})
|
|
set(LLAMA_RUN_EXTRA_LIBS ${LLAMA_RUN_EXTRA_LIBS} ${CURL_LIBRARIES})
|
|
endif ()
|
|
|
|
if(LLAMA_TOOLS_INSTALL)
|
|
install(TARGETS ${TARGET} RUNTIME)
|
|
endif()
|
|
|
|
if (CMAKE_SYSTEM_NAME MATCHES "AIX")
|
|
# AIX's flock() function comes from libbsd.a
|
|
target_link_libraries(${TARGET} PRIVATE -lbsd)
|
|
endif()
|
|
|
|
# Include directories for server headers and readline
|
|
target_include_directories(${TARGET} PRIVATE ${SERVER_DIR})
|
|
target_include_directories(${TARGET} PRIVATE ${SERVER_DIR}/../mtmd)
|
|
target_include_directories(${TARGET} PRIVATE ${CMAKE_SOURCE_DIR})
|
|
target_include_directories(${TARGET} PRIVATE ${READLINE_DIR}/include)
|
|
target_include_directories(${TARGET} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
|
|
|
target_link_libraries(${TARGET} PRIVATE common mtmd llama ${CMAKE_THREAD_LIBS_INIT} ${LLAMA_RUN_EXTRA_LIBS})
|
|
|
|
if (WIN32)
|
|
target_link_libraries(${TARGET} PRIVATE ws2_32)
|
|
endif()
|
|
|
|
target_compile_features(${TARGET} PRIVATE cxx_std_17)
|