hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
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
cmake_minimum_required(VERSION 2.8)
 
project(rkaiq_tool_server C CXX)
 
add_compile_options(${ISP_HW_VERSION})
 
set(CMAKE_VERBOSE_MAKEFILE OFF)
 
include_directories(
   ${PROJECT_SOURCE_DIR}/
   ${PROJECT_SOURCE_DIR}/netserver/
   ${PROJECT_SOURCE_DIR}/rkaiq/
   ${PROJECT_SOURCE_DIR}/camera/
   ${PROJECT_SOURCE_DIR}/mediactl/)
 
if(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "-std=c++11 -fno-rtti ${CMAKE_CXX_FLAGS}")
endif(CMAKE_COMPILER_IS_GNUCXX)
 
aux_source_directory(${PROJECT_SOURCE_DIR}/logger/ LOGGER_SOURCE)
aux_source_directory(${PROJECT_SOURCE_DIR}/netserver NET_SERVER_SOURCE)
set(RKAIQ_SOURCE
    ${PROJECT_SOURCE_DIR}/rkaiq/rkaiq_api/rkaiq_media.cpp
    ${PROJECT_SOURCE_DIR}/rkaiq/rkaiq_api/rkaiq_socket.cpp
    ${PROJECT_SOURCE_DIR}/rkaiq/multiframe_process.cpp
    ${PROJECT_SOURCE_DIR}/rkaiq/rkaiq_online_protocol.cpp
    ${PROJECT_SOURCE_DIR}/rkaiq/rkaiq_raw_protocol.cpp
    ${PROJECT_SOURCE_DIR}/rkaiq/rkaiq_protocol.cpp
    )
aux_source_directory(${PROJECT_SOURCE_DIR}/camera/ CAMERA_SOURCE)
aux_source_directory(${PROJECT_SOURCE_DIR}/mediactl/ MEDIACTL_SOURCE)
 
option(BUILD_SANITIZER_STATIC "compile with sanitizer (static library linker)" OFF)
if(BUILD_SANITIZER_STATIC)
   add_definitions(-fsanitize=address -static-libasan -g -ggdb -gdwarf -funwind-tables -rdynamic -O0 )
   link_libraries(libasan.a dl m rt)
endif()
 
option(BUILD_DEBUG "compile with debug" OFF)
if(BUILD_SANITIZER_STATIC)
        add_definitions(-g -ggdb -gdwarf -funwind-tables -rdynamic -O0 )
endif()
 
option(BUILD_RKAIQ_API "depend on rkaiq api library" OFF)
if(BUILD_RKAIQ_API)
aux_source_directory(${PROJECT_SOURCE_DIR}/rkaiq/rkaiq_api RKAIQ_SOURCE)
link_libraries(rkaiq)
add_definitions(-DENABLE_RKAIQ_UAPI)
endif()
find_path(RKAIQ_API_INCLUDE_DIR
    NAMES rk_aiq_user_api_imgproc.h
    HINTS ${CMAKE_FIND_ROOT_PATH}
    PATH_SUFFIXES rkaiq/uAPI)
include_directories(${RKAIQ_API_INCLUDE_DIR}/)
include_directories(${RKAIQ_API_INCLUDE_DIR}/..)
include_directories(${RKAIQ_API_INCLUDE_DIR}/../xcore)
include_directories(${RKAIQ_API_INCLUDE_DIR}/../common)
include_directories(${RKAIQ_API_INCLUDE_DIR}/../algos)
include_directories(${RKAIQ_API_INCLUDE_DIR}/../iq_parser)
include_directories(${RKAIQ_API_INCLUDE_DIR}/../iq_parser_v2)
include_directories(${PROJECT_SOURCE_DIR}/rkaiq/rkaiq_api)
 
option(BUILD_RKMEDIA "depend on rkmedia library" ON)
option(BUILD_RKMEDIA_INDE "depend on rkmedia library independent" ON)
if(BUILD_RKMEDIA)
add_definitions(-DENABLE_RSTP_SERVER)
if(BUILD_RKMEDIA_INDE)
include_directories(${PROJECT_SOURCE_DIR}/rkmedia)
include_directories(${PROJECT_SOURCE_DIR}/rkmedia/include)
include_directories(${PROJECT_SOURCE_DIR}/rkmedia/librkmedia/include)
include_directories(${PROJECT_SOURCE_DIR}/rkmedia/librkmedia/include/easymedia)
add_subdirectory(rkmedia/librkmedia)
set(RKMEDIA_SOURCE
   ${RKMEDIA_SOURCE}
   rkmedia/link_flow.cc
   rkmedia/sink_flow.cc
   rkmedia/source_flow.cc
   rkmedia/rtsp_server.cpp)
link_libraries(rkmedia)
else()
find_package(PkgConfig QUIET)
pkg_check_modules(PKG_EASYMEDIA QUIET "libeasymedia")
set(EASYMEDIA_DEFINITIONS ${PKG_EASYMEDIA_CFLAGS_OTHER})
find_path(EASYMEDIA_INCLUDE_DIR
    NAMES buffer.h
    HINTS ${PKG_EASYMEDIA_INCLUDEDIR} ${PKG_EASYMEDIA_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/rkmedia/include
    PATH_SUFFIXES easymedia)
include_directories(${PROJECT_SOURCE_DIR}/rkmedia/)
link_libraries(easymedia)
include_directories(${EASYMEDIA_INCLUDE_DIR}/)
aux_source_directory(${PROJECT_SOURCE_DIR}/rkmedia/ RKMEDIA_SOURCE)
endif()
endif()
 
file(GLOB_RECURSE ALL_SOURCE_FILES *.cpp *.cc *.h)
add_custom_target(
    clangformat
    COMMAND /usr/bin/clang-format
    -style=LLVM
    -i
    ${ALL_SOURCE_FILES})
 
set(RKAIQ_TOOL_SERVER_SOURCE
   ${LOGGER_SOURCE}
   ${NET_SERVER_SOURCE}
   ${RKAIQ_SOURCE}
   ${CAMERA_SOURCE}
   ${RKMEDIA_SOURCE}
   ${MEDIACTL_SOURCE}
   rkaiq_tool_server.cpp)
 
add_executable(rkaiq_tool_server ${RKAIQ_TOOL_SERVER_SOURCE})
if(BUILD_RKMEDIA_INDE)
add_dependencies(rkaiq_tool_server rkmedia)
endif()
target_link_libraries(rkaiq_tool_server pthread)
install(TARGETS rkaiq_tool_server RUNTIME DESTINATION bin)
 
option(BUILD_TEST "build test demo" OFF)
if(BUILD_TEST)
   add_subdirectory(test)
endif()