forked from sophon-ai-algo/examples
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
134 lines (113 loc) · 4.58 KB
/
CMakeLists.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
cmake_minimum_required(VERSION 3.2)
project(inference_framework)
set(CMAKE_CXX_STANDARD 14)
option(HAVE_TRACKER "Enable tracker" ON)
option(USE_BM_FFMPEG "Use bm ffmpeg" ON)
option(USE_BM_OPENCV "Use bm opencv" ON)
option(USE_QTGUI "Whether has GUI support" OFF)
option(CMODEL_MODE "Run in cmodel mode" OFF)
add_compile_options(-Wno-deprecated-declarations -fPIC)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
# Global Variables
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(TOP ${CMAKE_SOURCE_DIR})
if (NOT DEFINED TARGET_ARCH)
set(TARGET_ARCH x86)
endif()
if (USE_QTGUI)
if (${TARGET_ARCH} STREQUAL "soc")
set(QTDIR /opt/qt5.14-18.04-soc)
set(Qt5Widgets_DIR /opt/qt5.14-18.04-soc/lib/cmake/Qt5Widgets)
else()
set(QTDIR /opt/Qt5.12.9/5.12.9/gcc_64)
set(Qt5Widgets_DIR /opt/Qt5.12.9/5.12.9/gcc_64/lib/cmake/Qt5Widgets)
endif()
endif()
# User need to set this before compiling.
if (DEFINED ENV{REL_TOP})
set(BMNNSDK2_TOP $ENV{REL_TOP})
else()
set(BMNNSDK2_TOP $ENV{HOME}/bmnnsdk2/bmnnsdk2-latest)
endif()
set(bmnnsdk_inc_dirs ${BMNNSDK2_TOP}/include
${BMNNSDK2_TOP}/include/bmruntime
${BMNNSDK2_TOP}/include/bmlib
${BMNNSDK2_TOP}/include/third_party/boost/include
CACHE INTERNAL "")
set(bm_opencv_inc_dirs ${BMNNSDK2_TOP}/include/opencv/opencv4)
set(bm_ffmpeg_inc_dirs ${BMNNSDK2_TOP}/include/ffmpeg ${BMNNSDK2_TOP}/include/bmlib)
set(bm_ffmpeg_link_libs avfilter avformat avcodec avutil avdevice swresample swscale)
set(bm_opencv_link_libs opencv_core opencv_imgproc opencv_imgcodecs opencv_videoio opencv_dnn)
if (CMODEL_MODE)
set(bmnnsdk_link_libs bmrt bmcv bmlib boost_system boost_filesystem protobuf gflags glog pthread
CACHE INTERNAL "")
else()
set(bmnnsdk_link_libs bmrt bmcv bmvideo bmjpuapi bmjpulite bmlib boost_system boost_filesystem protobuf gflags glog pthread CACHE INTERNAL "")
endif()
if (${TARGET_ARCH} STREQUAL "x86")
set(bm_ffmpeg_link_dirs ${BMNNSDK2_TOP}/lib/ffmpeg/pcie ${BMNNSDK2_TOP}/lib/decode/pcie
${BMNNSDK2_TOP}/lib/bmnn/pcie
${BMNNSDK2_TOP}/lib/thirdparty/x86)
set(bm_opencv_link_dirs ${BMNNSDK2_TOP}/lib/opencv/pcie)
set(bmnnsdk_link_dirs ${BMNNSDK2_TOP}/lib/bmnn/pcie)
elseif (${TARGET_ARCH} STREQUAL "arm64")
# arm-pcie
set(bm_ffmpeg_link_dirs ${BMNNSDK2_TOP}/lib/ffmpeg/arm_pcie ${BMNNSDK2_TOP}/lib/decode/arm_pcie
${BMNNSDK2_TOP}/lib/bmnn/arm_pcie
${BMNNSDK2_TOP}/lib/thirdparty/soc)
set(bm_opencv_link_dirs ${BMNNSDK2_TOP}/lib/opencv/arm_pcie)
set(bmnnsdk_link_dirs ${BMNNSDK2_TOP}/lib/bmnn/arm_pcie)
else() # soc
set(bm_ffmpeg_link_dirs ${BMNNSDK2_TOP}/lib/ffmpeg/soc ${BMNNSDK2_TOP}/lib/decode/soc
${BMNNSDK2_TOP}/lib/bmnn/soc
${BMNNSDK2_TOP}/lib/thirdparty/soc)
set(bm_opencv_link_dirs ${BMNNSDK2_TOP}/lib/opencv/soc)
set(bmnnsdk_link_dirs ${BMNNSDK2_TOP}/lib/bmnn/soc)
endif ()
if (USE_BM_FFMPEG)
set(ffmpeg_inc_dirs ${bm_ffmpeg_inc_dirs} CACHE INTERNAL "")
set(ffmpeg_link_dirs ${bm_ffmpeg_link_dirs} CACHE INTERNAL "")
set(ffmpeg_link_libs ${bm_ffmpeg_link_libs} CACHE INTERNAL "")
else()
set(ffmpeg_inc_dirs /usr/local/include CACHE INTERNAL "")
set(ffmpeg_link_dirs /usr/local/lib CACHE INTERNAL "")
set(ffmpeg_link_libs avcodec avutil avformat swscale avdevice CACHE INTERNAL "")
endif()
if (USE_BM_OPENCV)
set(opencv_inc_dirs ${bm_opencv_inc_dirs})
set(opencv_link_dirs ${bm_opencv_link_dirs})
set(opencv_link_libs ${bm_opencv_link_libs})
else()
find_package(OpenCV REQUIRED)
set(opencv_inc_dirs ${OpenCV_INCLUDE_DIRS})
set(opencv_link_dirs ${OpenCV_LIBRARY_DIRS})
set(opencv_link_libs ${OpenCV_LIBS})
endif()
message(STATUS "ffmpeg_inc = ${ffmpeg_inc_dirs}")
message(STATUS "ffmpeg_link_dirs = ${ffmpeg_link_dirs}")
message(STATUS "opencv_inc = ${opencv_inc_dirs}")
message(STATUS "opencv_link_dirs = ${opencv_link_dirs}")
set(common_inc_dirs ${TOP} ${TOP}/tracker ${TOP}/bmutility ${TOP}/bmgui ${TOP}/third_party/jsoncpp)
message(STATUS "common_inc=${common_inc_dirs}")
add_subdirectory(bmutility)
if (USE_QTGUI)
add_subdirectory(bmgui)
add_subdirectory(bmgui-lite)
endif()
add_subdirectory(third_party/jsoncpp)
add_subdirectory(third_party/live555)
if (USE_BM_FFMPEG)
add_subdirectory(examples)
if (HAVE_TRACKER)
add_subdirectory(tracker)
add_subdirectory(cvs10)
endif()
else()
if (HAVE_TRACKER)
add_subdirectory(tracker)
add_subdirectory(cvs10)
endif()
endif()
add_subdirectory(ddr_reduction)