cmake_minimum_required(VERSION 3.5) project(app VERSION 1.0.0 LANGUAGES C CXX) set(RYZEN_AI_INSTALLATION_PATH $ENV{RYZEN_AI_INSTALLATION_PATH}) set(ONNXRUNTIME_ROOTDIR "${RYZEN_AI_INSTALLATION_PATH}/onnxruntime") set(PYTHONHOME "$ENV{CONDA_PREFIX}") message(STATUS "RYZEN_AI_INSTALLATION_PATH = ${RYZEN_AI_INSTALLATION_PATH}") message(STATUS "ONNXRUNTIME_ROOTDIR = ${ONNXRUNTIME_ROOTDIR}") message(STATUS "PYTHONHOME = ${PYTHONHOME}") set(CMAKE_CONFIGURATION_TYPES Release) set(CMAKE_CXX_STANDARD 17) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_INSTALL_PREFIX .) set(CMAKE_PREFIX_PATH .) set(BUILD_SHARED_LIBS OFF) add_compile_options( /Zc:__cplusplus /wd4100 /wd4996 /WX /std:c++latest ) include_directories( "${ONNXRUNTIME_ROOTDIR}/include/onnxruntime/core/session" src ) add_compile_options( /Qspectre /ZH:SHA_256 /guard:cf /W3 /Zi /Zc:__cplusplus ) add_link_options( /CETCOMPAT /DEBUG ) link_directories("${ONNXRUNTIME_ROOTDIR}/lib") link_directories("${CMAKE_INSTALL_PREFIX}/lib") add_executable(${PROJECT_NAME} src/main.cpp src/npu_util.cpp) target_link_libraries(${PROJECT_NAME} onnxruntime) # -- Copy the RyzenAI runtime DLLs in folder containing the executable list(APPEND dll_list "${RYZEN_AI_INSTALLATION_PATH}/deployment/voe/dyn_dispatch_core.dll") list(APPEND dll_list "${RYZEN_AI_INSTALLATION_PATH}/deployment/voe/onnxruntime.dll") list(APPEND dll_list "${RYZEN_AI_INSTALLATION_PATH}/deployment/voe/onnxruntime_providers_shared.dll") list(APPEND dll_list "${RYZEN_AI_INSTALLATION_PATH}/deployment/voe/onnxruntime_providers_vitisai.dll") list(APPEND dll_list "${RYZEN_AI_INSTALLATION_PATH}/deployment/voe/onnxruntime_vitisai_ep.dll") list(APPEND dll_list "${RYZEN_AI_INSTALLATION_PATH}/deployment/voe/transaction.dll") list(APPEND dll_list "${RYZEN_AI_INSTALLATION_PATH}/deployment/voe/xclbin.dll") foreach(DLL_FILE ${dll_list}) add_custom_command( TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${DLL_FILE} $ ) endforeach() add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${RYZEN_AI_INSTALLATION_PATH}/quicktest/test_model.onnx" $ ) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${RYZEN_AI_INSTALLATION_PATH}/voe-4.0-win_amd64/xclbins/phoenix/1x4.xclbin" $/xclbins/phoenix/1x4.xclbin ) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${RYZEN_AI_INSTALLATION_PATH}/voe-4.0-win_amd64/xclbins/strix/AMD_AIE2P_Nx4_Overlay.xclbin" $/xclbins/strix/AMD_AIE2P_Nx4_Overlay.xclbin )