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