1
0

common.cmake 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. function(ggml_get_flags CCID CCVER)
  2. set(C_FLAGS "")
  3. set(CXX_FLAGS "")
  4. if (CCID MATCHES "Clang")
  5. set(C_FLAGS -Wunreachable-code-break -Wunreachable-code-return)
  6. set(CXX_FLAGS -Wunreachable-code-break -Wunreachable-code-return -Wmissing-prototypes -Wextra-semi)
  7. if (
  8. (CCID STREQUAL "Clang" AND CCVER VERSION_GREATER_EQUAL 3.8.0) OR
  9. (CCID STREQUAL "AppleClang" AND CCVER VERSION_GREATER_EQUAL 7.3.0)
  10. )
  11. list(APPEND C_FLAGS -Wdouble-promotion)
  12. endif()
  13. elseif (CCID STREQUAL "GNU")
  14. set(C_FLAGS -Wdouble-promotion)
  15. set(CXX_FLAGS -Wno-array-bounds)
  16. if (CCVER VERSION_GREATER_EQUAL 8.1.0)
  17. list(APPEND CXX_FLAGS -Wextra-semi)
  18. endif()
  19. endif()
  20. set(GF_C_FLAGS ${C_FLAGS} PARENT_SCOPE)
  21. set(GF_CXX_FLAGS ${CXX_FLAGS} PARENT_SCOPE)
  22. endfunction()
  23. function(ggml_get_system_arch)
  24. if (CMAKE_OSX_ARCHITECTURES STREQUAL "arm64" OR
  25. CMAKE_GENERATOR_PLATFORM_LWR STREQUAL "arm64" OR
  26. (NOT CMAKE_OSX_ARCHITECTURES AND NOT CMAKE_GENERATOR_PLATFORM_LWR AND
  27. CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm.*|ARM64)$"))
  28. set(GGML_SYSTEM_ARCH "ARM" PARENT_SCOPE)
  29. elseif (CMAKE_OSX_ARCHITECTURES STREQUAL "x86_64" OR
  30. CMAKE_GENERATOR_PLATFORM_LWR MATCHES "^(x86_64|i686|amd64|x64|win32)$" OR
  31. (NOT CMAKE_OSX_ARCHITECTURES AND NOT CMAKE_GENERATOR_PLATFORM_LWR AND
  32. CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|i686|AMD64|amd64)$"))
  33. set(GGML_SYSTEM_ARCH "x86" PARENT_SCOPE)
  34. elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc|power")
  35. set(GGML_SYSTEM_ARCH "PowerPC" PARENT_SCOPE)
  36. elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "loongarch64")
  37. set(GGML_SYSTEM_ARCH "loongarch64" PARENT_SCOPE)
  38. elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "riscv64")
  39. set(GGML_SYSTEM_ARCH "riscv64" PARENT_SCOPE)
  40. elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "s390x")
  41. set(GGML_SYSTEM_ARCH "s390x" PARENT_SCOPE)
  42. else()
  43. set(GGML_SYSTEM_ARCH "UNKNOWN" PARENT_SCOPE)
  44. endif()
  45. endfunction()