CMakeLists.txt 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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_LLAMAFILE ON)
  17. set(GGML_CPU_ALL_VARIANTS ON)
  18. set(GGML_CUDA_PEER_MAX_BATCH_SIZE 128)
  19. set(GGML_CUDA_GRAPHS ON)
  20. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
  21. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
  22. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src)
  23. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src/include)
  24. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src/ggml-cpu)
  25. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src/ggml-cpu/amx)
  26. set(GGML_CPU ON)
  27. add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src)
  28. set_property(TARGET ggml PROPERTY EXCLUDE_FROM_ALL TRUE)
  29. check_language(CUDA)
  30. if(CMAKE_CUDA_COMPILER)
  31. if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.24" AND NOT CMAKE_CUDA_ARCHITECTURES)
  32. set(CMAKE_CUDA_ARCHITECTURES "native")
  33. endif()
  34. add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src/ggml-cuda)
  35. endif()
  36. check_language(HIP)
  37. if(CMAKE_HIP_COMPILER)
  38. set(HIP_PLATFORM "amd")
  39. add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src/ggml-hip)
  40. endif()