CMakeLists.txt 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. set(TARGET llama-server)
  2. option(LLAMA_SERVER_VERBOSE "Build verbose logging option for Server" ON)
  3. option(LLAMA_SERVER_SSL "Build SSL support for the server" OFF)
  4. include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
  5. if (MINGW)
  6. # fix: https://github.com/ggerganov/llama.cpp/actions/runs/9651004652/job/26617901362?pr=8006
  7. add_compile_definitions(_WIN32_WINNT=${GGML_WIN_VER})
  8. endif()
  9. set(TARGET_SRCS
  10. server.cpp
  11. utils.hpp
  12. httplib.h
  13. )
  14. set(PUBLIC_ASSETS
  15. colorthemes.css
  16. style.css
  17. theme-beeninorder.css
  18. theme-ketivah.css
  19. theme-mangotango.css
  20. theme-playground.css
  21. theme-polarnight.css
  22. theme-snowstorm.css
  23. index.html
  24. index-new.html
  25. index.js
  26. completion.js
  27. system-prompts.js
  28. prompt-formats.js
  29. json-schema-to-grammar.mjs
  30. )
  31. foreach(asset ${PUBLIC_ASSETS})
  32. set(input "${CMAKE_CURRENT_SOURCE_DIR}/public/${asset}")
  33. set(output "${CMAKE_CURRENT_BINARY_DIR}/${asset}.hpp")
  34. list(APPEND TARGET_SRCS ${output})
  35. add_custom_command(
  36. DEPENDS "${input}"
  37. OUTPUT "${output}"
  38. COMMAND "${CMAKE_COMMAND}" "-DINPUT=${input}" "-DOUTPUT=${output}" -P "${PROJECT_SOURCE_DIR}/scripts/xxd.cmake"
  39. )
  40. endforeach()
  41. add_executable(${TARGET} ${TARGET_SRCS})
  42. install(TARGETS ${TARGET} RUNTIME)
  43. target_compile_definitions(${TARGET} PRIVATE
  44. SERVER_VERBOSE=$<BOOL:${LLAMA_SERVER_VERBOSE}>
  45. )
  46. target_link_libraries(${TARGET} PRIVATE common ${CMAKE_THREAD_LIBS_INIT})
  47. if (LLAMA_SERVER_SSL)
  48. find_package(OpenSSL REQUIRED)
  49. target_link_libraries(${TARGET} PRIVATE OpenSSL::SSL OpenSSL::Crypto)
  50. target_compile_definitions(${TARGET} PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT)
  51. endif()
  52. if (WIN32)
  53. TARGET_LINK_LIBRARIES(${TARGET} PRIVATE ws2_32)
  54. endif()
  55. target_compile_features(${TARGET} PRIVATE cxx_std_11)