set(CMAKE_DBUSXX_XML2CPP_TOOLS ${BR2_SDK_PATH}/bin/dbusxx-xml2cpp)
|
add_custom_command(OUTPUT dbus_meida_control_xml2cpp
|
COMMAND ${CMAKE_DBUSXX_XML2CPP_TOOLS}
|
dbus_media_control.xml
|
--proxy=dbus_media_control_proxy.h
|
--adaptor=dbus_media_control_adaptor.h
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dbus/control
|
COMMENT "build dbus_meida_control xml2cpp head file"
|
)
|
add_custom_target(dbus_meida_control_xml2cppTask ALL DEPENDS dbus_meida_control_xml2cpp)
|
|
add_custom_command(OUTPUT dbus_dbserver_xml2cpp
|
COMMAND ${CMAKE_DBUSXX_XML2CPP_TOOLS}
|
dbus_dbserver.xml
|
--proxy=dbus_dbserver_proxy.h
|
--adaptor=dbus_dbserver_adaptor.h
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dbus/database
|
COMMENT "build dbus_dbserver xml2cpp head file"
|
)
|
add_custom_target(dbus_dbserver_xml2cppTask ALL DEPENDS dbus_dbserver_xml2cpp)
|
|
|
add_custom_command(OUTPUT dbus_storage_manager_xml2cpp
|
COMMAND ${CMAKE_DBUSXX_XML2CPP_TOOLS}
|
dbus_storage_manager.xml
|
--proxy=dbus_storage_manager_proxy.h
|
--adaptor=dbus_storage_manager_adaptor.h
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dbus/storage_manager
|
COMMENT "build dbus_storage_manager xml2cpp head file"
|
)
|
add_custom_target(dbus_storage_manager_xml2cppTask ALL DEPENDS dbus_storage_manager_xml2cpp)
|
|
set(AI_SERVER_INC
|
${CMAKE_CURRENT_SOURCE_DIR}/utils/
|
${CMAKE_CURRENT_SOURCE_DIR}/utils/server/
|
${CMAKE_CURRENT_SOURCE_DIR}/utils/thread/
|
${CMAKE_CURRENT_SOURCE_DIR}/utils/osd/
|
${CMAKE_CURRENT_SOURCE_DIR}/utils/drm/
|
${CMAKE_CURRENT_SOURCE_DIR}/task/
|
${CMAKE_CURRENT_SOURCE_DIR}/parse/
|
${CMAKE_CURRENT_SOURCE_DIR}/dbus/
|
${CMAKE_CURRENT_SOURCE_DIR}/dbus/control/
|
${CMAKE_CURRENT_SOURCE_DIR}/dbus/database/
|
${CMAKE_CURRENT_SOURCE_DIR}/dbus/storage_manager/)
|
|
# glib_2::glib_2
|
set(AISERVER_LIB
|
dbus-1
|
dbus_cpp::dbus_cpp
|
${CMAKE_THREAD_LIBS_INIT})
|
|
set(AI_SERVER_SRC aiserver.cpp ai_scene_director.cpp ai_feature_retriver.cpp ai_uvc_graph.cpp)
|
aux_source_directory(utils/thread AI_SERVER_SRC)
|
aux_source_directory(utils/drm AI_SERVER_SRC)
|
aux_source_directory(task AI_SERVER_SRC)
|
aux_source_directory(dbus AI_SERVER_SRC)
|
aux_source_directory(dbus/control AI_SERVER_SRC)
|
aux_source_directory(dbus/database AI_SERVER_SRC)
|
aux_source_directory(dbus/storage_manager AI_SERVER_SRC)
|
|
if (DEFINED MEDIASERVER_CONF_PREFIX)
|
add_definitions(-DMEDIASERVER_CONF_PREFIX=${MEDIASERVER_CONF_PREFIX})
|
endif()
|
|
option(DBSERVER_SUPPORT "enbale dbserver" OFF)
|
if (${DBSERVER_SUPPORT})
|
add_definitions(-DDBSERVER_SUPPORT)
|
set(AISERVER_LIB ${AISERVER_LIB} IPCProtocol)
|
endif()
|
|
option(ENABLE_OSD_SERVER "enbale osd server" OFF)
|
if (${ENABLE_OSD_SERVER_ON})
|
find_package(FreeType2 REQUIRED)
|
add_definitions(-DENABLE_OSD_SERVER)
|
set(AISERVER_LIB ${AISERVER_LIB} Freetype_2::Freetype_2)
|
aux_source_directory(utils/osd/ AI_SERVER_SRC)
|
endif()
|
|
option(ENABLE_MINILOGGER "enbale minilogger" ON)
|
if (${ENABLE_MINILOGGER})
|
find_package(MiniLogger REQUIRED)
|
add_definitions(-DENABLE_MINILOGGER)
|
set(AISERVER_LIB ${AISERVER_LIB} MiniLogger::MiniLogger)
|
endif()
|
|
option(ENABLE_SHM_SERVER "enbale shm server" ON)
|
if (${ENABLE_SHM_SERVER})
|
add_definitions(-DENABLE_SHM_SERVER)
|
set(AI_SERVER_INC
|
${AI_SERVER_INC}
|
${CMAKE_CURRENT_SOURCE_DIR}/utils/shmc/)
|
aux_source_directory(utils/shmc/ AI_SERVER_SRC)
|
find_package(Protobuf REQUIRED)
|
if(PROTOBUF_FOUND)
|
message(STATUS "protobuf library found")
|
set(AISERVER_LIB ${AISERVER_LIB} protobuf-lite)
|
include_directories(${PROTOBUF_INCLUDE_DIRS})
|
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS
|
${CMAKE_CURRENT_SOURCE_DIR}/utils/shmc/nn_data.proto
|
${CMAKE_CURRENT_SOURCE_DIR}/utils/shmc/uvc_data.proto)
|
set(AI_SERVER_INC ${AI_SERVER_INC} ${PROTO_HDRS})
|
set(AI_SERVER_SRC ${AI_SERVER_SRC} ${PROTO_SRCS} ${PROTO_HDRS})
|
endif()
|
endif()
|
|
option(ENABLE_EXIV2_LIB "enbale exiv2 library" OFF)
|
if (${ENABLE_EXIV2_LIB_ON})
|
find_package(Exiv2 REQUIRED)
|
add_definitions(-DENABLE_EXIV2_LIB)
|
set(AISERVER_LIB ${AISERVER_LIB} Exiv2::Exiv2)
|
set(AI_SERVER_INC ${AI_SERVER_INC} utils/exiv2/)
|
aux_source_directory(utils/exiv2/ AI_SERVER_SRC)
|
endif()
|
|
option(USE_STASTERIA "enable sensetime st_asteria" OFF)
|
if (${USE_STASTERIA})
|
add_definitions(-DHAVE_STASTERIA)
|
set(AISERVER_LIB ${AISERVER_LIB} stasteria)
|
set(AI_SERVER_INC ${AI_SERVER_INC} task/sensetime/)
|
#link_libraries(${CMAKE_CURRENT_SOURCE_DIR}/../../sensetime/lib/libstdc++.so.6.0.22)
|
aux_source_directory(task/sensetime/ ST_ASTERIA_SRC)
|
endif()
|
|
option(USE_ROCKFACE "enbale rockface" OFF)
|
if (${USE_ROCKFACE})
|
add_definitions(-DUSE_ROCKFACE)
|
endif()
|
|
option(USE_ROCKX "enbale rockx" OFF)
|
if (${USE_ROCKX})
|
add_definitions(-DUSE_ROCKX)
|
add_definitions(-DHAVE_ROCKX)
|
set(AISERVER_LIB ${AISERVER_LIB} rockx)
|
set(AI_SERVER_INC ${AI_SERVER_INC} task/rockx/)
|
aux_source_directory(task/rockx/ ST_ASTERIA_SRC)
|
endif()
|
|
# vendor & samples
|
set(VENDOR_STATIC vendor_static)
|
add_subdirectory(vendor)
|
|
set(AISERVER_LIB ${AISERVER_LIB} rockit -Wl,--whole-archive ${VENDOR_STATIC} -Wl,--no-whole-archive)
|
|
add_executable(aiserver ${AI_SERVER_SRC} ${ST_ASTERIA_SRC})
|
target_include_directories(aiserver PUBLIC ${AI_SERVER_INC})
|
target_link_libraries(aiserver ${AISERVER_LIB} PkgConfig::JSON-C)
|
add_dependencies(aiserver dbus_meida_control_xml2cppTask)
|
add_dependencies(aiserver dbus_dbserver_xml2cppTask)
|
add_dependencies(aiserver dbus_storage_manager_xml2cppTask)
|
install(TARGETS aiserver RUNTIME DESTINATION bin)
|
install(FILES dbus/rockchip.aiserver.control.conf DESTINATION share/dbus-1/system.d)
|
|
if (${ENABLE_OSD_SERVER})
|
install(DIRECTORY resource/ DESTINATION share/aiserver FILES_MATCHING PATTERN "*.bmp")
|
install(DIRECTORY resource/ DESTINATION share/aiserver FILES_MATCHING PATTERN "*.ttc")
|
install(DIRECTORY resource/ DESTINATION share/aiserver FILES_MATCHING PATTERN "*.ttf")
|
endif()
|
|
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/aiserver.h DESTINATION include/aiserver)
|