CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0) project(YOLOv8CPP) SET(CMAKE_CXX_STANDARD 17) SET(CMAKE_CXX_STANDARD_REQUIRED ON) # SET (OpenCV_DIR your/path/to/opencv/build/x64/vc16/lib) # opencv lib root # SET (OpenCV_BIN_DIR your/path/to/opencv/build/x64/vc16/bin) #opencv bin root # SET (OpenCV_DEBUG_DLL_FILENAME opencv_world480d.dll) # change filenames # SET (OpenCV_RELEASE_DLL_FILENAME opencv_world480.dll) # change filenames set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") SET (ONNXRUNTIME_DIR "${CMAKE_CURRENT_SOURCE_DIR}/onnxruntime/onnxruntime-linux-x64-gpu-1.18.1") FIND_PACKAGE(OpenCV REQUIRED) set(CMAKE_BUILD_TYPE Debug) # --- Configure your project files --- include_directories(include) # Include your header files directory # Recursively collect all source files under 'src' directory file(GLOB_RECURSE CURR_SOURCES src/*.cpp) # Create the executable add_executable(YOLOv8CPP ${CURR_SOURCES}) target_compile_features(YOLOv8CPP PRIVATE cxx_std_17) TARGET_INCLUDE_DIRECTORIES(YOLOv8CPP PRIVATE "${ONNXRUNTIME_DIR}/include") TARGET_LINK_LIBRARIES(YOLOv8CPP ${OpenCV_LIBS}) if (WIN32) TARGET_LINK_LIBRARIES(YOLOv8CPP "${ONNXRUNTIME_DIR}/lib/onnxruntime.lib") # some changes to the original version: # copy onnxruntime dll add_custom_command(TARGET YOLOv8CPP POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ONNXRUNTIME_DIR}/lib/onnxruntime.dll" "$" ) # copy opencv #[[ add_custom_command(TARGET YOLOv8CPP POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_differentdpkg -L libcv2 "${OpenCV_DIR}/${OpenCV_DLL_FILENAME}" "$" )]] add_custom_command(TARGET YOLOv8CPP POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${OpenCV_BIN_DIR}/${OpenCV_DEBUG_DLL_FILENAME}" "$" ) # add release add_custom_command(TARGET YOLOv8CPP POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${OpenCV_BIN_DIR}/${OpenCV_RELEASE_DLL_FILENAME}" "$" ) endif(WIN32) if (UNIX) TARGET_LINK_LIBRARIES(YOLOv8CPP "${ONNXRUNTIME_DIR}/lib/libonnxruntime.so") endif(UNIX)