Files
mirai/cmake/config_macos.cmake

42 lines
1.7 KiB
CMake
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 如果是Macos
if (APPLE)
# 获取 Homebrew 安装的 libomp 路径
execute_process(
COMMAND brew --prefix libomp
OUTPUT_VARIABLE HOMEBREW_LIBOMP_PATH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# 设置 OpenMP 路径变量
set(OpenMP_CXX_FLAGS "-Xpreprocessor -fopenmp -I${HOMEBREW_LIBOMP_PATH}/include")
set(OpenMP_CXX_LIB_NAMES "omp")
set(OpenMP_omp_LIBRARY "${HOMEBREW_LIBOMP_PATH}/lib/libomp.dylib")
enable_language(OBJC OBJCXX)
# ============================================================================================
# Apple Accelerate框架支持 (包含AMX向量指令集)
# ============================================================================================
# 检测是否为Apple Silicon (ARM64)
if(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64|aarch64")
message(STATUS "Detected Apple Silicon (${CMAKE_SYSTEM_PROCESSOR})")
# 查找Accelerate框架macOS系统自带
find_library(ACCELERATE_FRAMEWORK Accelerate)
if(ACCELERATE_FRAMEWORK)
message(STATUS "Found Accelerate framework: ${ACCELERATE_FRAMEWORK}")
# 设置全局变量供其他模块使用
set(APPLE_ACCELERATE_LIBRARY ${ACCELERATE_FRAMEWORK} PARENT_SCOPE)
set(HAS_ACCELERATE TRUE PARENT_SCOPE)
# 启用Accelerate编译选项
add_compile_definitions(MIRAI_ENABLE_ACCELERATE)
else()
message(WARNING "Accelerate framework not found on macOS")
set(HAS_ACCELERATE FALSE PARENT_SCOPE)
endif()
else()
message(STATUS "Not Apple Silicon, Accelerate framework disabled")
set(HAS_ACCELERATE FALSE PARENT_SCOPE)
endif()
endif ()