cmake_minimum_required(VERSION 3.22...3.30)
project(${SKBUILD_PROJECT_NAME} VERSION ${SKBUILD_PROJECT_VERSION} LANGUAGES CXX)
if(POLICY CMP0135)
cmake_policy(SET CMP0135 NEW)
endif()
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
include(FetchContent)
set(PYBIND11_FINDPYTHON ON)
find_package(pybind11 CONFIG REQUIRED)
find_package(Python REQUIRED COMPONENTS Interpreter Development NumPy)
if(DEFINED ENV{ASCEND_TOOLKIT_HOME})
set(ASCEND_CANN_PATH "$ENV{ASCEND_TOOLKIT_HOME}")
elseif(DEFINED ENV{ASCEND_HOME_PATH})
set(ASCEND_CANN_PATH "$ENV{ASCEND_HOME_PATH}")
else()
set(ASCEND_CANN_PATH "/usr/local/Ascend/ascend-toolkit/latest")
message(WARNING "CANN SDK path not set. Using default: ${ASCEND_CANN_PATH}. "
"Set ASCEND_TOOLKIT_HOME or ASCEND_HOME_PATH environment variable.")
endif()
message(STATUS "CANN SDK: ${ASCEND_CANN_PATH}")
include_directories(${ASCEND_CANN_PATH}/include)
link_directories(${ASCEND_CANN_PATH}/lib64)
include_directories(${Python_NumPy_INCLUDE_DIRS})
find_package(fmt REQUIRED PATHS /usr/lib64/cmake /usr/lib/cmake /usr/lib/aarch64-linux-gnu/cmake NO_DEFAULT_PATH)
message(STATUS "Using system fmt: ${fmt_VERSION}")
find_package(spdlog REQUIRED PATHS /usr/lib64/cmake /usr/lib/cmake /usr/lib/aarch64-linux-gnu/cmake NO_DEFAULT_PATH)
message(STATUS "Using system spdlog: ${spdlog_VERSION}")
add_compile_definitions(SPDLOG_FMT_EXTERNAL)
include_directories(include)
add_subdirectory(csrc)
add_subdirectory(bindings/python)
if(SKBUILD)
message(STATUS "Building with scikit-build-core")
endif()