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}) # Add project include directory include_directories(${CMAKE_SOURCE_DIR}/include) # ---------------- 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 src/main.cpp src/SocketServer.cpp src/CameraController.cpp src/GStreamerPipeline.cpp src/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" ) # --------------------------------------------------------