CMakeLists.txt 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. include(CheckLanguage)
  2. find_package(Threads REQUIRED)
  3. set(CMAKE_CXX_STANDARD 11)
  4. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  5. set(CMAKE_CXX_EXTENSIONS OFF)
  6. set(GGML_CCACHE ON)
  7. set(GGML_SCHED_MAX_COPIES 4)
  8. set(GGML_CPU_ALL_VARIANTS ON)
  9. set(GGML_CUDA_PEER_MAX_BATCH_SIZE 128)
  10. set(GGML_LLAMAFILE ON)
  11. add_compile_definitions(GGML_BUILD)
  12. add_compile_definitions(GGML_SHARED)
  13. add_compile_definitions(GGML_BACKEND_DL)
  14. add_compile_definitions(GGML_BACKEND_SHARED)
  15. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ggml/src)
  16. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ggml/src/include)
  17. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ggml/src/ggml-cpu)
  18. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ggml/src/ggml-cpu/amx)
  19. add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ggml/src EXCLUDE_FROM_ALL)
  20. set_target_output_directory(ggml-base)
  21. add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ggml/src/ggml-cpu)
  22. set_target_output_directory(ggml-cpu)
  23. find_package(BLAS)
  24. if(NOT BLAS_VENDOR)
  25. set(GGML_BLAS_VENDOR "Generic")
  26. else()
  27. set(GGML_BLAS_VENDOR ${BLAS_VENDOR})
  28. endif()
  29. add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ggml/src/ggml-blas)
  30. set_target_output_directory(ggml-blas)
  31. check_language(CUDA)
  32. if(CMAKE_CUDA_COMPILER)
  33. add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ggml/src/ggml-cuda)
  34. set_target_output_directory(ggml-cuda)
  35. endif()
  36. check_language(HIP)
  37. if(CMAKE_HIP_COMPILER)
  38. add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ggml/src/ggml-hip)
  39. set_target_output_directory(ggml-hip)
  40. endif()