set(PYTHON_SRC_LIST
${PROJECT_SOURCE_DIR}/source/py/module/PyTensor.cpp
${PROJECT_SOURCE_DIR}/source/py/module/PyTensorOps.cpp
)
if(IMAGE OR VIDEO)
add_definitions(-DENABLE_IMAGE)
list(APPEND PYTHON_SRC_LIST
${PROJECT_SOURCE_DIR}/source/py/module/PyImage.cpp
)
endif()
if(VIDEO)
add_definitions(-DENABLE_VIDEO)
list(APPEND PYTHON_SRC_LIST
${PROJECT_SOURCE_DIR}/source/py/module/PyVideo.cpp
)
endif()
if(AUDIO)
add_definitions(-DENABLE_AUDIO)
list(APPEND PYTHON_SRC_LIST
${PROJECT_SOURCE_DIR}/source/py/module/PyAudio.cpp
)
endif()
add_definitions(-DPy_LIMITED_API=0x03090000)
find_package(Python3 3.11 EXACT REQUIRED COMPONENTS Interpreter Development)
find_package(SWIG REQUIRED)
include(UseSWIG)
find_package(Python3 3.11 EXACT REQUIRED COMPONENTS Interpreter Development)
include_directories(${PROJECT_SOURCE_DIR}/source/py/include)
include_directories(${PROJECT_SOURCE_DIR}/include)
set(SWIG_INTERFACE_FILE ${PROJECT_SOURCE_DIR}/source/py/SwigInterface/acc.i)
set_source_files_properties(${SWIG_INTERFACE_FILE} PROPERTIES CPLUSPLUS ON)
swig_add_library(acc
TYPE MODULE
LANGUAGE python
SOURCES
${SWIG_INTERFACE_FILE}
${PROJECT_SOURCE_DIR}/source/py/module/PyTensor.cpp
${PROJECT_SOURCE_DIR}/source/py/module/PyTensorOps.cpp
${PROJECT_SOURCE_DIR}/source/py/module/PyImage.cpp
${PROJECT_SOURCE_DIR}/source/py/module/PyUtil.cpp
${PROJECT_SOURCE_DIR}/source/py/module/PyLog.cpp
${PROJECT_SOURCE_DIR}/source/py/module/PyPreprocess.cpp
${PROJECT_SOURCE_DIR}/source/py/module/PyVideo.cpp
${PROJECT_SOURCE_DIR}/source/py/module/PyAudio.cpp
)
target_include_directories(acc PRIVATE
${Python3_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR}/source/py/include
${PROJECT_SOURCE_DIR}/include
)
swig_link_libraries(acc
PRIVATE ascendcl core
)