diff --git a/packages/leann-backend-hnsw/CMakeLists.txt b/packages/leann-backend-hnsw/CMakeLists.txt index 6ca6d55..87d4592 100644 --- a/packages/leann-backend-hnsw/CMakeLists.txt +++ b/packages/leann-backend-hnsw/CMakeLists.txt @@ -57,9 +57,16 @@ set(FAISS_ENABLE_SSE4_1 OFF CACHE BOOL "" FORCE) # ARM64-specific configuration if(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64") message(STATUS "Configuring Faiss for ARM64 architecture") - # Use SVE optimization level for ARM64 (as seen in Faiss conda build) - set(FAISS_OPT_LEVEL "sve" CACHE STRING "" FORCE) - message(STATUS "Setting FAISS_OPT_LEVEL to 'sve' for ARM64") + + if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + # Use SVE optimization level for ARM64 Linux (as seen in Faiss conda build) + set(FAISS_OPT_LEVEL "sve" CACHE STRING "" FORCE) + message(STATUS "Setting FAISS_OPT_LEVEL to 'sve' for ARM64 Linux") + else() + # Use generic optimization for other ARM64 platforms (like macOS) + set(FAISS_OPT_LEVEL "generic" CACHE STRING "" FORCE) + message(STATUS "Setting FAISS_OPT_LEVEL to 'generic' for ARM64 ${CMAKE_SYSTEM_NAME}") + endif() # ARM64 compatibility: Faiss submodule has been modified to fix x86 header inclusion message(STATUS "Using ARM64-compatible Faiss submodule")