CMakeLists.txt 908 B

1234567891011121314151617181920212223
  1. cmake_minimum_required(VERSION 3.12)
  2. project(binding)
  3. include(FetchContent)
  4. FetchContent_Declare(
  5. llama_cpp
  6. GIT_REPOSITORY https://github.com/ggerganov/llama.cpp.git
  7. GIT_TAG 55dbb91
  8. )
  9. FetchContent_MakeAvailable(llama_cpp)
  10. add_library(binding ${CMAKE_CURRENT_SOURCE_DIR}/binding/binding.cpp ${llama_cpp_SOURCE_DIR}/examples/common.cpp)
  11. target_include_directories(binding PRIVATE ${llama_cpp_SOURCE_DIR}/examples)
  12. target_link_libraries(binding llama ggml_static)
  13. if (LLAMA_METAL)
  14. configure_file(${llama_cpp_SOURCE_DIR}/ggml-metal.metal ${CMAKE_CURRENT_BINARY_DIR}/../../ggml-metal.metal COPYONLY)
  15. endif()
  16. add_custom_target(copy_libllama ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:llama> ${CMAKE_CURRENT_BINARY_DIR})
  17. add_custom_target(copy_libggml_static ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:ggml_static> ${CMAKE_CURRENT_BINARY_DIR})