42 lines
1.7 KiB
CMake
42 lines
1.7 KiB
CMake
|
||
# 如果是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 ()
|