@@ -157,47 +157,49 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
157157 else ()
158158 if (GGML_CPU_ARM_ARCH)
159159 list (APPEND ARCH_FLAGS -march=${GGML_CPU_ARM_ARCH} )
160- else ()
161- # Begin with the lowest baseline
162- set (ARM_MCPU "armv8-a" )
163- set (ARCH_TAGS "" )
164- set (ARCH_DEFINITIONS "" )
165-
166- # When a feature is selected, bump the MCPU to the first
167- # version that supported it
168- if (GGML_INTERNAL_DOTPROD)
169- set (ARM_MCPU "armv8.2-a" )
170- set (ARCH_TAGS "${ARCH_TAGS} +dotprod" )
171- list (APPEND ARCH_DEFINITIONS GGML_USE_DOTPROD)
172- endif ()
173- if (GGML_INTERNAL_FP16_VECTOR_ARITHMETIC)
174- set (ARM_MCPU "armv8.2-a" )
175- set (ARCH_TAGS "${ARCH_TAGS} +fp16" )
176- list (APPEND ARCH_DEFINITIONS GGML_USE_FP16_VECTOR_ARITHMETIC)
177- endif ()
178- if (GGML_INTERNAL_SVE)
179- set (ARM_MCPU "armv8.2-a" )
180- set (ARCH_TAGS "${ARCH_TAGS} +sve" )
181- list (APPEND ARCH_DEFINITIONS GGML_USE_SVE)
182- endif ()
183- if (GGML_INTERNAL_MATMUL_INT8)
184- set (ARM_MCPU "armv8.6-a" )
185- set (ARCH_TAGS "${ARCH_TAGS} +i8mm" )
186- list (APPEND ARCH_DEFINITIONS GGML_USE_MATMUL_INT8)
187- endif ()
188- if (GGML_INTERNAL_SVE2)
189- set (ARM_MCPU "armv8.6-a" )
190- set (ARCH_TAGS "${ARCH_TAGS} +sve2" )
191- list (APPEND ARCH_DEFINITIONS GGML_USE_SVE2)
192- endif ()
193- if (GGML_INTERNAL_SME)
194- set (ARM_MCPU "armv9.2-a" )
195- set (ARCH_TAGS "${ARCH_TAGS} +sme" )
196- list (APPEND ARCH_DEFINITIONS GGML_USE_SME)
197- endif ()
160+ elseif (GGML_CPU_ALL_VARIANTS)
161+ if (CMAKE_SYSTEM_NAME MATCHES "Linux" )
162+ # Begin with the lowest baseline
163+ set (ARM_MCPU "armv8-a" )
164+ set (ARCH_TAGS "" )
165+ set (ARCH_DEFINITIONS "" )
166+
167+ # When a feature is selected, bump the MCPU to the first
168+ # version that supported it
169+ if (GGML_INTERNAL_DOTPROD)
170+ set (ARM_MCPU "armv8.2-a" )
171+ set (ARCH_TAGS "${ARCH_TAGS} +dotprod" )
172+ list (APPEND ARCH_DEFINITIONS GGML_USE_DOTPROD)
173+ endif ()
174+ if (GGML_INTERNAL_FP16_VECTOR_ARITHMETIC)
175+ set (ARM_MCPU "armv8.2-a" )
176+ set (ARCH_TAGS "${ARCH_TAGS} +fp16" )
177+ list (APPEND ARCH_DEFINITIONS GGML_USE_FP16_VECTOR_ARITHMETIC)
178+ endif ()
179+ if (GGML_INTERNAL_SVE)
180+ set (ARM_MCPU "armv8.2-a" )
181+ set (ARCH_TAGS "${ARCH_TAGS} +sve" )
182+ list (APPEND ARCH_DEFINITIONS GGML_USE_SVE)
183+ endif ()
184+ if (GGML_INTERNAL_MATMUL_INT8)
185+ set (ARM_MCPU "armv8.6-a" )
186+ set (ARCH_TAGS "${ARCH_TAGS} +i8mm" )
187+ list (APPEND ARCH_DEFINITIONS GGML_USE_MATMUL_INT8)
188+ endif ()
189+ if (GGML_INTERNAL_SVE2)
190+ set (ARM_MCPU "armv8.6-a" )
191+ set (ARCH_TAGS "${ARCH_TAGS} +sve2" )
192+ list (APPEND ARCH_DEFINITIONS GGML_USE_SVE2)
193+ endif ()
194+ if (GGML_INTERNAL_SME)
195+ set (ARM_MCPU "armv9.2-a" )
196+ set (ARCH_TAGS "${ARCH_TAGS} +sme" )
197+ list (APPEND ARCH_DEFINITIONS GGML_USE_SME)
198+ endif ()
198199
199- list (APPEND ARCH_FLAGS "-march=${ARM_MCPU}${ARCH_TAGS} " )
200- ggml_add_cpu_backend_features(${GGML_CPU_NAME} arm ${ARCH_DEFINITIONS} )
200+ list (APPEND ARCH_FLAGS "-march=${ARM_MCPU}${ARCH_TAGS} " )
201+ ggml_add_cpu_backend_features(${GGML_CPU_NAME} arm ${ARCH_DEFINITIONS} )
202+ endif ()
201203 endif ()
202204 endif ()
203205
0 commit comments