@@ -157,47 +157,49 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
157
157
else ()
158
158
if (GGML_CPU_ARM_ARCH )
159
159
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 ()
198
199
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 ()
201
203
endif ()
202
204
endif ()
203
205
0 commit comments