cmake_minimum_required(VERSION 3.16.0)
set(OPS_RAND cann_ops_rand)
find_package(ASC REQUIRED)
project(${OPS_RAND} VERSION 1.0.0 LANGUAGES ASC CXX)
set(SOC_VERSION "" CACHE STRING "Target SoC version (ascend950, ascend910b, etc.)")
set(ASCEND_CANN_PACKAGE_PATH $ENV{ASCEND_HOME_PATH})
set(RUN_MODE "npu" CACHE STRING "Run mode: npu")
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type (Release/Debug)")
set(BUILD_TEST OFF CACHE BOOL "Whether to build tests")
set(COMPILED_OPS "" CACHE STRING "List of operators to test (comma-separated)")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/tests)
option(ENABLE_PACKAGE "Enable package build" OFF)
option(ENABLE_BINARY "Build binary kernel" ON)
option(ENABLE_TEST "Enable unit tests" OFF)
if(NOT CANN_3RD_LIB_PATH)
set(CANN_3RD_LIB_PATH ${PROJECT_SOURCE_DIR}/third_party CACHE STRING "CANN third party lib path")
endif()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/func.cmake")
include(cmake/func.cmake)
endif()
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/version.cmake")
include(version.cmake)
endif()
if(BUILD_WITH_INSTALLED_DEPENDENCY_CANN_PKG AND COMMAND check_pkg_build_deps)
check_pkg_build_deps("ops_rand")
endif()
if(COMMAND add_version_info_targets)
add_version_info_targets()
endif()
if(UNIX)
set(SYSTEM_PREFIX "${CMAKE_SYSTEM_PROCESSOR}-linux")
endif()
if(DEFINED ENV{ASCEND_HOME_PATH})
list(APPEND CMAKE_MODULE_PATH "$ENV{ASCEND_HOME_PATH}/${SYSTEM_PREFIX}/tikcpp/ascendc_kernel_cmake/asc_modules")
elseif(DEFINED ASCEND_HOME_PATH)
list(APPEND CMAKE_MODULE_PATH "${ASCEND_HOME_PATH}/${SYSTEM_PREFIX}/tikcpp/ascendc_kernel_cmake/asc_modules")
endif()
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/variables.cmake")
include(cmake/variables.cmake)
endif()
include(cmake/init_env.cmake)
init_env()
add_subdirectory(src)
if(BUILD_TEST)
add_subdirectory(tests)
endif()
install(TARGETS ${OPS_RAND}
LIBRARY DESTINATION ${OPS_RAND_LIB_INSTALL_DIR}
)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
DESTINATION ${OPS_RAND_INC_INSTALL_DIR}
FILES_MATCHING PATTERN "*.h"
)
if(ENABLE_PACKAGE)
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/package.cmake")
include(cmake/package.cmake)
if(COMMAND pack_built_in)
pack_built_in()
endif()
else()
message(WARNING "Package configuration file not found: cmake/package.cmake")
endif()
endif()