-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathCMakeLists.example.txt
64 lines (49 loc) · 2.16 KB
/
CMakeLists.example.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0)
project(YOLOv8CPP)
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 (ONNXRUNTIME_DIR your/path/to/onnxruntime-win-x64-1.15.1) # onnxruntime root
FIND_PACKAGE(OpenCV REQUIRED)
# --- 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})
SET(CMAKE_CXX_STANDARD 17)
SET(CMAKE_CXX_STANDARD_REQUIRED ON)
TARGET_INCLUDE_DIRECTORIES(YOLOv8CPP PRIVATE "${ONNXRUNTIME_DIR}/include")
target_compile_features(YOLOv8CPP PRIVATE cxx_std_17)
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"
"$<TARGET_FILE_DIR:YOLOv8CPP>"
)
# copy opencv
#[[ add_custom_command(TARGET YOLOv8CPP POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${OpenCV_DIR}/${OpenCV_DLL_FILENAME}"
"$<TARGET_FILE_DIR:YOLOv8CPP>"
)]]
add_custom_command(TARGET YOLOv8CPP POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${OpenCV_BIN_DIR}/${OpenCV_DEBUG_DLL_FILENAME}"
"$<TARGET_FILE_DIR:YOLOv8CPP>"
)
# add release
add_custom_command(TARGET YOLOv8CPP POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${OpenCV_BIN_DIR}/${OpenCV_RELEASE_DLL_FILENAME}"
"$<TARGET_FILE_DIR:YOLOv8CPP>"
)
endif(WIN32)
if (UNIX)
TARGET_LINK_LIBRARIES(YOLOv8CPP "${ONNXRUNTIME_DIR}/lib/libonnxruntime.so")
endif(UNIX)