67 lines
1.7 KiB
CMake
67 lines
1.7 KiB
CMake
cmake_minimum_required(VERSION 3.20)
|
|
project(vizionStreamer)
|
|
|
|
set(CMAKE_CXX_STANDARD 23)
|
|
|
|
# ---------------- Vizion SDK integration ----------------
|
|
set(VIZIONSDK_ROOT "/opt/vizionsdk")
|
|
set(VIZIONSDK_INCLUDE_DIR "${VIZIONSDK_ROOT}/include")
|
|
set(VIZIONSDK_LIB_DIR "${VIZIONSDK_ROOT}/lib")
|
|
|
|
# Add VizionSDK include directory
|
|
include_directories(${VIZIONSDK_INCLUDE_DIR})
|
|
|
|
# ---------------- GStreamer integration ----------------
|
|
find_package(PkgConfig REQUIRED)
|
|
pkg_check_modules(GSTREAMER REQUIRED gstreamer-1.0)
|
|
pkg_check_modules(GSTREAMER_APP REQUIRED gstreamer-app-1.0)
|
|
|
|
include_directories(
|
|
${GSTREAMER_INCLUDE_DIRS}
|
|
${GSTREAMER_APP_INCLUDE_DIRS}
|
|
)
|
|
|
|
link_directories(
|
|
${GSTREAMER_LIBRARY_DIRS}
|
|
${GSTREAMER_APP_LIBRARY_DIRS}
|
|
)
|
|
|
|
# Find VizionSDK library
|
|
find_library(VIZIONSDK_LIBRARY
|
|
NAMES VizionSDK
|
|
PATHS ${VIZIONSDK_LIB_DIR}
|
|
NO_DEFAULT_PATH
|
|
REQUIRED
|
|
)
|
|
|
|
# Create executable
|
|
add_executable(vizionStreamer
|
|
main.cpp
|
|
SocketServer.cpp
|
|
CameraController.cpp
|
|
GStreamerPipeline.cpp
|
|
StreamingEngine.cpp
|
|
)
|
|
|
|
# Link libraries
|
|
target_link_libraries(vizionStreamer PRIVATE
|
|
${VIZIONSDK_LIBRARY}
|
|
${GSTREAMER_LIBRARIES}
|
|
${GSTREAMER_APP_LIBRARIES}
|
|
)
|
|
|
|
# Set RPATH so the executable can find the SDK .so at runtime without needing LD_LIBRARY_PATH
|
|
set_target_properties(vizionStreamer PROPERTIES
|
|
BUILD_RPATH "${VIZIONSDK_LIB_DIR}"
|
|
INSTALL_RPATH "${VIZIONSDK_LIB_DIR}"
|
|
)
|
|
|
|
# Copy VxConfig.conf to build directory on every build
|
|
add_custom_command(TARGET vizionStreamer POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
${CMAKE_SOURCE_DIR}/config/VxConfig.conf
|
|
${CMAKE_BINARY_DIR}/VxConfig.conf
|
|
COMMENT "Copying VxConfig.conf to build directory"
|
|
)
|
|
# --------------------------------------------------------
|