CMakeLists.txt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. cmake_minimum_required(VERSION 3.21)
  2. project(Ollama C CXX)
  3. include(CheckLanguage)
  4. find_package(Threads REQUIRED)
  5. set(CMAKE_BUILD_TYPE Release)
  6. set(BUILD_SHARED_LIBS ON)
  7. set(CMAKE_CXX_STANDARD 17)
  8. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  9. set(CMAKE_CXX_EXTENSIONS OFF)
  10. set(GGML_BUILD ON)
  11. set(GGML_SHARED ON)
  12. set(GGML_CCACHE ON)
  13. set(GGML_BACKEND_DL ON)
  14. set(GGML_BACKEND_SHARED ON)
  15. set(GGML_SCHED_MAX_COPIES 4)
  16. set(GGML_CPU_ALL_VARIANTS ON)
  17. set(GGML_CUDA_PEER_MAX_BATCH_SIZE 128)
  18. set(GGML_LLAMAFILE ON)
  19. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
  20. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src)
  21. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src/include)
  22. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src/ggml-cpu)
  23. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src/ggml-cpu/amx)
  24. set(GGML_CPU ON)
  25. add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src)
  26. set_property(TARGET ggml PROPERTY EXCLUDE_FROM_ALL TRUE)
  27. check_language(CUDA)
  28. if(CMAKE_CUDA_COMPILER)
  29. add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src/ggml-cuda)
  30. endif()
  31. check_language(HIP)
  32. if(CMAKE_HIP_COMPILER)
  33. add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src/ggml-hip)
  34. endif()