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()
|