Make MCAP and depth support optional
This commit is contained in:
+273
-80
@@ -8,6 +8,68 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
function(cvmmap_streamer_append_runtime_dir out_var runtime_library)
|
||||
execute_process(
|
||||
COMMAND "${CMAKE_CXX_COMPILER}" -print-file-name=${runtime_library}
|
||||
OUTPUT_VARIABLE runtime_library_path
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if (IS_ABSOLUTE "${runtime_library_path}")
|
||||
get_filename_component(runtime_library_dir "${runtime_library_path}" DIRECTORY)
|
||||
set(${out_var} "${${out_var}};${runtime_library_dir}" PARENT_SCOPE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(cvmmap_streamer_resolve_feature_mode out_var option_name requested_mode available unavailable_reason)
|
||||
set(_valid_modes AUTO ON OFF)
|
||||
list(FIND _valid_modes "${requested_mode}" _requested_mode_index)
|
||||
if (_requested_mode_index EQUAL -1)
|
||||
message(FATAL_ERROR
|
||||
"Invalid ${option_name}='${requested_mode}' (expected: AUTO|ON|OFF)")
|
||||
endif()
|
||||
|
||||
if (requested_mode STREQUAL "OFF")
|
||||
set(${out_var} FALSE PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
|
||||
if (requested_mode STREQUAL "ON")
|
||||
if (NOT available)
|
||||
message(FATAL_ERROR
|
||||
"${option_name}=ON requires ${unavailable_reason}")
|
||||
endif()
|
||||
|
||||
set(${out_var} TRUE PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(${out_var} ${available} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
set(CVMMAP_STREAMER_BUILD_RPATH "")
|
||||
# Build-tree binaries compiled with a non-system GCC need that toolchain's
|
||||
# C++ runtime on the dynamic loader search path.
|
||||
cvmmap_streamer_append_runtime_dir(CVMMAP_STREAMER_BUILD_RPATH libstdc++.so.6)
|
||||
cvmmap_streamer_append_runtime_dir(CVMMAP_STREAMER_BUILD_RPATH libgcc_s.so.1)
|
||||
list(REMOVE_DUPLICATES CVMMAP_STREAMER_BUILD_RPATH)
|
||||
|
||||
set(
|
||||
CVMMAP_STREAMER_ENABLE_MCAP
|
||||
"AUTO"
|
||||
CACHE STRING
|
||||
"Enable MCAP recording support: AUTO, ON, or OFF")
|
||||
set_property(CACHE CVMMAP_STREAMER_ENABLE_MCAP PROPERTY STRINGS AUTO ON OFF)
|
||||
set(
|
||||
CVMMAP_STREAMER_ENABLE_MCAP_DEPTH
|
||||
"AUTO"
|
||||
CACHE STRING
|
||||
"Enable MCAP depth recording support: AUTO, ON, or OFF")
|
||||
set_property(CACHE CVMMAP_STREAMER_ENABLE_MCAP_DEPTH PROPERTY STRINGS AUTO ON OFF)
|
||||
set(
|
||||
CVMMAP_STREAMER_MCAP_INCLUDE_DIR
|
||||
"${CMAKE_CURRENT_LIST_DIR}/third_party/mcap/include"
|
||||
CACHE PATH
|
||||
"Path to MCAP headers")
|
||||
|
||||
find_package(Threads REQUIRED)
|
||||
find_package(OpenSSL REQUIRED)
|
||||
if (NOT TARGET OpenSSL::SSL AND DEFINED OPENSSL_SSL_LIBRARY)
|
||||
@@ -73,15 +135,110 @@ endif()
|
||||
find_package(ZeroMQ QUIET)
|
||||
find_package(spdlog REQUIRED)
|
||||
find_package(Protobuf REQUIRED)
|
||||
if (Protobuf_VERSION VERSION_LESS 3.13)
|
||||
set(_cvmmap_streamer_protoc_wrapper "${CMAKE_BINARY_DIR}/cvmmap-streamer-protoc-wrapper.sh")
|
||||
file(WRITE "${_cvmmap_streamer_protoc_wrapper}"
|
||||
"#!/bin/sh\nexec \"${Protobuf_PROTOC_EXECUTABLE}\" --experimental_allow_proto3_optional \"$@\"\n")
|
||||
file(CHMOD
|
||||
"${_cvmmap_streamer_protoc_wrapper}"
|
||||
PERMISSIONS
|
||||
OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
||||
GROUP_READ GROUP_EXECUTE
|
||||
WORLD_READ WORLD_EXECUTE)
|
||||
if (TARGET protobuf::protoc)
|
||||
set_target_properties(protobuf::protoc PROPERTIES IMPORTED_LOCATION "${_cvmmap_streamer_protoc_wrapper}")
|
||||
endif()
|
||||
set(Protobuf_PROTOC_EXECUTABLE "${_cvmmap_streamer_protoc_wrapper}")
|
||||
endif()
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
find_package(rvl CONFIG QUIET)
|
||||
|
||||
set(_CVMMAP_STREAMER_MCAP_HEADERS_AVAILABLE FALSE)
|
||||
if (EXISTS "${CVMMAP_STREAMER_MCAP_INCLUDE_DIR}/mcap/mcap.hpp")
|
||||
set(_CVMMAP_STREAMER_MCAP_HEADERS_AVAILABLE TRUE)
|
||||
if (NOT TARGET mcap::mcap)
|
||||
add_library(cvmmap_streamer_mcap_headers INTERFACE)
|
||||
target_include_directories(cvmmap_streamer_mcap_headers INTERFACE "${CVMMAP_STREAMER_MCAP_INCLUDE_DIR}")
|
||||
add_library(mcap::mcap ALIAS cvmmap_streamer_mcap_headers)
|
||||
endif()
|
||||
elseif (NOT TARGET mcap::mcap)
|
||||
add_library(mcap::mcap INTERFACE IMPORTED GLOBAL)
|
||||
endif()
|
||||
|
||||
add_subdirectory(third_party)
|
||||
|
||||
pkg_check_modules(FFMPEG REQUIRED IMPORTED_TARGET libavcodec libavformat libavutil libswscale)
|
||||
pkg_check_modules(PROTOBUF_PKG QUIET IMPORTED_TARGET protobuf)
|
||||
pkg_check_modules(ZSTD REQUIRED IMPORTED_TARGET libzstd)
|
||||
pkg_check_modules(LZ4 REQUIRED IMPORTED_TARGET liblz4)
|
||||
pkg_check_modules(ZSTD QUIET IMPORTED_TARGET libzstd)
|
||||
pkg_check_modules(LZ4 QUIET IMPORTED_TARGET liblz4)
|
||||
|
||||
set(_CVMMAP_STREAMER_MCAP_MISSING_DEPS)
|
||||
if (NOT _CVMMAP_STREAMER_MCAP_HEADERS_AVAILABLE)
|
||||
list(APPEND _CVMMAP_STREAMER_MCAP_MISSING_DEPS "MCAP headers at ${CVMMAP_STREAMER_MCAP_INCLUDE_DIR}")
|
||||
endif()
|
||||
if (NOT ZSTD_FOUND)
|
||||
list(APPEND _CVMMAP_STREAMER_MCAP_MISSING_DEPS "pkg-config package libzstd")
|
||||
endif()
|
||||
if (NOT LZ4_FOUND)
|
||||
list(APPEND _CVMMAP_STREAMER_MCAP_MISSING_DEPS "pkg-config package liblz4")
|
||||
endif()
|
||||
if (_CVMMAP_STREAMER_MCAP_MISSING_DEPS)
|
||||
list(JOIN _CVMMAP_STREAMER_MCAP_MISSING_DEPS ", " _CVMMAP_STREAMER_MCAP_UNAVAILABLE_REASON)
|
||||
set(_CVMMAP_STREAMER_MCAP_AVAILABLE FALSE)
|
||||
else()
|
||||
set(_CVMMAP_STREAMER_MCAP_UNAVAILABLE_REASON "MCAP dependencies")
|
||||
set(_CVMMAP_STREAMER_MCAP_AVAILABLE TRUE)
|
||||
endif()
|
||||
cvmmap_streamer_resolve_feature_mode(
|
||||
CVMMAP_STREAMER_HAS_MCAP_BOOL
|
||||
CVMMAP_STREAMER_ENABLE_MCAP
|
||||
"${CVMMAP_STREAMER_ENABLE_MCAP}"
|
||||
${_CVMMAP_STREAMER_MCAP_AVAILABLE}
|
||||
"${_CVMMAP_STREAMER_MCAP_UNAVAILABLE_REASON}")
|
||||
|
||||
set(RVL_LOCAL_ROOT "${CMAKE_CURRENT_LIST_DIR}/../rvl_impl" CACHE PATH "Path to a local rvl_impl checkout")
|
||||
set(RVL_LOCAL_BUILD "${RVL_LOCAL_ROOT}/build/core" CACHE PATH "Path to local rvl_impl build artifacts")
|
||||
|
||||
set(_CVMMAP_STREAMER_RVL_AVAILABLE FALSE)
|
||||
set(_CVMMAP_STREAMER_RVL_UNAVAILABLE_REASON "rvl::rvl target or local rvl_impl build artifacts")
|
||||
if (TARGET rvl::rvl)
|
||||
set(_CVMMAP_STREAMER_RVL_AVAILABLE TRUE)
|
||||
elseif (
|
||||
EXISTS "${RVL_LOCAL_ROOT}/core/include/rvl/rvl.hpp"
|
||||
AND EXISTS "${RVL_LOCAL_BUILD}/librvl_core.a")
|
||||
set(_CVMMAP_STREAMER_RVL_AVAILABLE TRUE)
|
||||
endif()
|
||||
|
||||
if (CVMMAP_STREAMER_ENABLE_MCAP STREQUAL "OFF" AND CVMMAP_STREAMER_ENABLE_MCAP_DEPTH STREQUAL "ON")
|
||||
message(FATAL_ERROR
|
||||
"CVMMAP_STREAMER_ENABLE_MCAP_DEPTH=ON requires CVMMAP_STREAMER_ENABLE_MCAP to be AUTO or ON")
|
||||
endif()
|
||||
if (CVMMAP_STREAMER_ENABLE_MCAP_DEPTH STREQUAL "ON" AND NOT CVMMAP_STREAMER_HAS_MCAP_BOOL)
|
||||
message(FATAL_ERROR
|
||||
"CVMMAP_STREAMER_ENABLE_MCAP_DEPTH=ON requires MCAP support, but ${_CVMMAP_STREAMER_MCAP_UNAVAILABLE_REASON} is unavailable")
|
||||
endif()
|
||||
if (NOT CVMMAP_STREAMER_HAS_MCAP_BOOL AND CVMMAP_STREAMER_ENABLE_MCAP_DEPTH STREQUAL "AUTO")
|
||||
set(CVMMAP_STREAMER_HAS_MCAP_DEPTH_BOOL FALSE)
|
||||
else()
|
||||
cvmmap_streamer_resolve_feature_mode(
|
||||
CVMMAP_STREAMER_HAS_MCAP_DEPTH_BOOL
|
||||
CVMMAP_STREAMER_ENABLE_MCAP_DEPTH
|
||||
"${CVMMAP_STREAMER_ENABLE_MCAP_DEPTH}"
|
||||
${_CVMMAP_STREAMER_RVL_AVAILABLE}
|
||||
"${_CVMMAP_STREAMER_RVL_UNAVAILABLE_REASON}")
|
||||
endif()
|
||||
|
||||
if (CVMMAP_STREAMER_HAS_MCAP_BOOL)
|
||||
set(CVMMAP_STREAMER_HAS_MCAP 1)
|
||||
else()
|
||||
set(CVMMAP_STREAMER_HAS_MCAP 0)
|
||||
endif()
|
||||
if (CVMMAP_STREAMER_HAS_MCAP_DEPTH_BOOL)
|
||||
set(CVMMAP_STREAMER_HAS_MCAP_DEPTH 1)
|
||||
else()
|
||||
set(CVMMAP_STREAMER_HAS_MCAP_DEPTH 0)
|
||||
endif()
|
||||
|
||||
if (NOT TARGET cvmmap::client)
|
||||
if (
|
||||
@@ -104,9 +261,7 @@ if (NOT TARGET cvmmap::client)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT TARGET rvl::rvl)
|
||||
set(RVL_LOCAL_ROOT "${CMAKE_CURRENT_LIST_DIR}/../rvl_impl" CACHE PATH "Path to a local rvl_impl checkout")
|
||||
set(RVL_LOCAL_BUILD "${RVL_LOCAL_ROOT}/build/core")
|
||||
if (CVMMAP_STREAMER_HAS_MCAP_DEPTH AND NOT TARGET rvl::rvl)
|
||||
if (
|
||||
EXISTS "${RVL_LOCAL_ROOT}/core/include/rvl/rvl.hpp"
|
||||
AND EXISTS "${RVL_LOCAL_BUILD}/librvl_core.a")
|
||||
@@ -185,21 +340,16 @@ target_link_libraries(cvmmap_streamer_foxglove_proto PUBLIC cvmmap_streamer_prot
|
||||
target_link_libraries(cvmmap_streamer_depth_proto PUBLIC cvmmap_streamer_protobuf)
|
||||
target_link_libraries(cvmmap_streamer_control_proto PUBLIC cvmmap_streamer_protobuf)
|
||||
|
||||
add_library(cvmmap_streamer_mcap_runtime STATIC
|
||||
src/record/mcap_runtime.cpp)
|
||||
target_include_directories(cvmmap_streamer_mcap_runtime
|
||||
PUBLIC)
|
||||
target_link_libraries(cvmmap_streamer_mcap_runtime
|
||||
PUBLIC
|
||||
mcap::mcap
|
||||
PkgConfig::ZSTD
|
||||
PkgConfig::LZ4)
|
||||
add_library(cvmmap_streamer_feature_flags INTERFACE)
|
||||
target_compile_definitions(cvmmap_streamer_feature_flags
|
||||
INTERFACE
|
||||
CVMMAP_STREAMER_HAS_MCAP=${CVMMAP_STREAMER_HAS_MCAP}
|
||||
CVMMAP_STREAMER_HAS_MCAP_DEPTH=${CVMMAP_STREAMER_HAS_MCAP_DEPTH})
|
||||
|
||||
add_library(cvmmap_streamer_record_support STATIC
|
||||
src/encode/encoder_backend.cpp
|
||||
src/encode/ffmpeg_encoder_backend.cpp
|
||||
src/record/protobuf_descriptor.cpp
|
||||
src/record/mcap_record_sink.cpp
|
||||
src/record/mp4_record_writer.cpp)
|
||||
target_include_directories(cvmmap_streamer_record_support
|
||||
PUBLIC
|
||||
@@ -207,14 +357,8 @@ target_include_directories(cvmmap_streamer_record_support
|
||||
"${CMAKE_CURRENT_BINARY_DIR}")
|
||||
target_link_libraries(cvmmap_streamer_record_support
|
||||
PUBLIC
|
||||
cvmmap_streamer_foxglove_proto
|
||||
cvmmap_streamer_depth_proto
|
||||
cvmmap_streamer_mcap_runtime
|
||||
cvmmap_streamer_feature_flags
|
||||
PkgConfig::FFMPEG
|
||||
PkgConfig::ZSTD
|
||||
PkgConfig::LZ4
|
||||
rvl::rvl
|
||||
mcap::mcap
|
||||
msft_proxy4::proxy
|
||||
cvmmap_streamer_protobuf)
|
||||
if (TARGET spdlog::spdlog)
|
||||
@@ -226,6 +370,43 @@ if (TARGET PkgConfig::PROTOBUF_PKG)
|
||||
target_link_libraries(cvmmap_streamer_record_support PUBLIC PkgConfig::PROTOBUF_PKG)
|
||||
endif()
|
||||
|
||||
if (CVMMAP_STREAMER_HAS_MCAP)
|
||||
add_library(cvmmap_streamer_mcap_runtime STATIC
|
||||
src/record/mcap_runtime.cpp)
|
||||
target_link_libraries(cvmmap_streamer_mcap_runtime
|
||||
PUBLIC
|
||||
cvmmap_streamer_feature_flags
|
||||
mcap::mcap
|
||||
PkgConfig::ZSTD
|
||||
PkgConfig::LZ4)
|
||||
|
||||
add_library(cvmmap_streamer_mcap_record_support STATIC
|
||||
src/record/mcap_record_sink.cpp)
|
||||
target_include_directories(cvmmap_streamer_mcap_record_support
|
||||
PUBLIC
|
||||
"${CMAKE_CURRENT_LIST_DIR}/include"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}")
|
||||
target_link_libraries(cvmmap_streamer_mcap_record_support
|
||||
PUBLIC
|
||||
cvmmap_streamer_feature_flags
|
||||
cvmmap_streamer_record_support
|
||||
cvmmap_streamer_foxglove_proto
|
||||
cvmmap_streamer_depth_proto
|
||||
cvmmap_streamer_mcap_runtime
|
||||
mcap::mcap)
|
||||
if (CVMMAP_STREAMER_HAS_MCAP_DEPTH)
|
||||
target_link_libraries(cvmmap_streamer_mcap_record_support PUBLIC rvl::rvl)
|
||||
endif()
|
||||
if (TARGET spdlog::spdlog)
|
||||
target_link_libraries(cvmmap_streamer_mcap_record_support PUBLIC spdlog::spdlog)
|
||||
elseif (TARGET spdlog)
|
||||
target_link_libraries(cvmmap_streamer_mcap_record_support PUBLIC spdlog)
|
||||
endif()
|
||||
if (TARGET PkgConfig::PROTOBUF_PKG)
|
||||
target_link_libraries(cvmmap_streamer_mcap_record_support PUBLIC PkgConfig::PROTOBUF_PKG)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_library(cvmmap_streamer_common STATIC
|
||||
src/ipc/help.cpp
|
||||
src/config/runtime_config.cpp
|
||||
@@ -249,13 +430,14 @@ set(CVMMAP_STREAMER_LINK_DEPS
|
||||
Threads::Threads
|
||||
cvmmap_streamer_record_support
|
||||
PkgConfig::FFMPEG
|
||||
PkgConfig::ZSTD
|
||||
PkgConfig::LZ4
|
||||
cvmmap::client
|
||||
cvmmap::nats
|
||||
CLI11::CLI11
|
||||
tomlplusplus::tomlplusplus
|
||||
mcap::mcap)
|
||||
cvmmap_streamer_feature_flags)
|
||||
if (CVMMAP_STREAMER_HAS_MCAP)
|
||||
list(APPEND CVMMAP_STREAMER_LINK_DEPS cvmmap_streamer_mcap_record_support)
|
||||
endif()
|
||||
|
||||
if (TARGET cppzmq::cppzmq)
|
||||
list(APPEND CVMMAP_STREAMER_LINK_DEPS cppzmq::cppzmq)
|
||||
@@ -283,6 +465,13 @@ endif()
|
||||
|
||||
target_link_libraries(cvmmap_streamer_common PUBLIC ${CVMMAP_STREAMER_LINK_DEPS})
|
||||
|
||||
function(cvmmap_streamer_apply_build_rpath target)
|
||||
if (CVMMAP_STREAMER_BUILD_RPATH)
|
||||
set_target_properties(${target} PROPERTIES
|
||||
BUILD_RPATH "${CVMMAP_STREAMER_BUILD_RPATH}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(add_cvmmap_binary target source)
|
||||
add_executable(${target} ${source} ${ARGN})
|
||||
target_include_directories(${target}
|
||||
@@ -295,6 +484,7 @@ function(add_cvmmap_binary target source)
|
||||
set_target_properties(${target} PROPERTIES
|
||||
OUTPUT_NAME "${target}"
|
||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
|
||||
cvmmap_streamer_apply_build_rpath(${target})
|
||||
endfunction()
|
||||
|
||||
add_cvmmap_binary(cvmmap_streamer src/main_streamer.cpp)
|
||||
@@ -303,65 +493,68 @@ add_cvmmap_binary(rtp_output_tester src/testers/rtp_output_tester.cpp)
|
||||
add_cvmmap_binary(rtmp_stub_tester src/testers/rtmp_stub_tester.cpp)
|
||||
add_cvmmap_binary(rtmp_output_tester src/testers/rtmp_output_tester.cpp)
|
||||
add_cvmmap_binary(ipc_snapshot_tester src/testers/ipc_snapshot_tester.cpp)
|
||||
add_cvmmap_binary(mcap_depth_record_tester src/testers/mcap_depth_record_tester.cpp)
|
||||
add_cvmmap_binary(mcap_body_record_tester src/testers/mcap_body_record_tester.cpp)
|
||||
add_cvmmap_binary(mcap_body_inspector src/testers/mcap_body_inspector.cpp)
|
||||
add_cvmmap_binary(mcap_pose_record_tester src/testers/mcap_pose_record_tester.cpp)
|
||||
add_cvmmap_binary(mcap_multi_record_tester src/testers/mcap_multi_record_tester.cpp)
|
||||
if (CVMMAP_STREAMER_HAS_MCAP)
|
||||
add_cvmmap_binary(mcap_body_record_tester src/testers/mcap_body_record_tester.cpp)
|
||||
add_cvmmap_binary(mcap_body_inspector src/testers/mcap_body_inspector.cpp)
|
||||
add_cvmmap_binary(mcap_pose_record_tester src/testers/mcap_pose_record_tester.cpp)
|
||||
|
||||
add_executable(mcap_reader_tester src/testers/mcap_reader_tester.cpp)
|
||||
target_include_directories(mcap_reader_tester
|
||||
PRIVATE
|
||||
"${CMAKE_CURRENT_LIST_DIR}/include"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}")
|
||||
target_link_libraries(mcap_reader_tester
|
||||
PRIVATE
|
||||
CLI11::CLI11
|
||||
cvmmap_streamer_foxglove_proto
|
||||
cvmmap_streamer_depth_proto
|
||||
cvmmap_streamer_mcap_runtime
|
||||
mcap::mcap
|
||||
PkgConfig::ZSTD
|
||||
PkgConfig::LZ4)
|
||||
if (TARGET spdlog::spdlog)
|
||||
target_link_libraries(mcap_reader_tester PRIVATE spdlog::spdlog)
|
||||
elseif (TARGET spdlog)
|
||||
target_link_libraries(mcap_reader_tester PRIVATE spdlog)
|
||||
endif()
|
||||
target_link_libraries(mcap_reader_tester PRIVATE cvmmap_streamer_protobuf)
|
||||
if (TARGET PkgConfig::PROTOBUF_PKG)
|
||||
target_link_libraries(mcap_reader_tester PRIVATE PkgConfig::PROTOBUF_PKG)
|
||||
endif()
|
||||
set_target_properties(mcap_reader_tester PROPERTIES
|
||||
OUTPUT_NAME "mcap_reader_tester"
|
||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
|
||||
add_executable(mcap_reader_tester src/testers/mcap_reader_tester.cpp)
|
||||
target_include_directories(mcap_reader_tester
|
||||
PRIVATE
|
||||
"${CMAKE_CURRENT_LIST_DIR}/include"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}")
|
||||
target_link_libraries(mcap_reader_tester
|
||||
PRIVATE
|
||||
CLI11::CLI11
|
||||
cvmmap_streamer_feature_flags
|
||||
cvmmap_streamer_foxglove_proto
|
||||
cvmmap_streamer_depth_proto
|
||||
cvmmap_streamer_mcap_runtime
|
||||
cvmmap_streamer_protobuf)
|
||||
if (TARGET spdlog::spdlog)
|
||||
target_link_libraries(mcap_reader_tester PRIVATE spdlog::spdlog)
|
||||
elseif (TARGET spdlog)
|
||||
target_link_libraries(mcap_reader_tester PRIVATE spdlog)
|
||||
endif()
|
||||
if (TARGET PkgConfig::PROTOBUF_PKG)
|
||||
target_link_libraries(mcap_reader_tester PRIVATE PkgConfig::PROTOBUF_PKG)
|
||||
endif()
|
||||
set_target_properties(mcap_reader_tester PROPERTIES
|
||||
OUTPUT_NAME "mcap_reader_tester"
|
||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
|
||||
cvmmap_streamer_apply_build_rpath(mcap_reader_tester)
|
||||
|
||||
add_executable(mcap_replay_tester src/testers/mcap_replay_tester.cpp)
|
||||
target_include_directories(mcap_replay_tester
|
||||
PRIVATE
|
||||
"${CMAKE_CURRENT_LIST_DIR}/include"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}")
|
||||
target_link_libraries(mcap_replay_tester
|
||||
PRIVATE
|
||||
Threads::Threads
|
||||
CLI11::CLI11
|
||||
cvmmap_streamer_foxglove_proto
|
||||
cvmmap_streamer_mcap_runtime
|
||||
mcap::mcap
|
||||
PkgConfig::ZSTD
|
||||
PkgConfig::LZ4)
|
||||
if (TARGET spdlog::spdlog)
|
||||
target_link_libraries(mcap_replay_tester PRIVATE spdlog::spdlog)
|
||||
elseif (TARGET spdlog)
|
||||
target_link_libraries(mcap_replay_tester PRIVATE spdlog)
|
||||
add_executable(mcap_replay_tester src/testers/mcap_replay_tester.cpp)
|
||||
target_include_directories(mcap_replay_tester
|
||||
PRIVATE
|
||||
"${CMAKE_CURRENT_LIST_DIR}/include"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}")
|
||||
target_link_libraries(mcap_replay_tester
|
||||
PRIVATE
|
||||
Threads::Threads
|
||||
CLI11::CLI11
|
||||
cvmmap_streamer_feature_flags
|
||||
cvmmap_streamer_foxglove_proto
|
||||
cvmmap_streamer_mcap_runtime
|
||||
cvmmap_streamer_protobuf)
|
||||
if (TARGET spdlog::spdlog)
|
||||
target_link_libraries(mcap_replay_tester PRIVATE spdlog::spdlog)
|
||||
elseif (TARGET spdlog)
|
||||
target_link_libraries(mcap_replay_tester PRIVATE spdlog)
|
||||
endif()
|
||||
if (TARGET PkgConfig::PROTOBUF_PKG)
|
||||
target_link_libraries(mcap_replay_tester PRIVATE PkgConfig::PROTOBUF_PKG)
|
||||
endif()
|
||||
set_target_properties(mcap_replay_tester PROPERTIES
|
||||
OUTPUT_NAME "mcap_replay_tester"
|
||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
|
||||
cvmmap_streamer_apply_build_rpath(mcap_replay_tester)
|
||||
endif()
|
||||
target_link_libraries(mcap_replay_tester PRIVATE cvmmap_streamer_protobuf)
|
||||
if (TARGET PkgConfig::PROTOBUF_PKG)
|
||||
target_link_libraries(mcap_replay_tester PRIVATE PkgConfig::PROTOBUF_PKG)
|
||||
|
||||
if (CVMMAP_STREAMER_HAS_MCAP_DEPTH)
|
||||
add_cvmmap_binary(mcap_depth_record_tester src/testers/mcap_depth_record_tester.cpp)
|
||||
add_cvmmap_binary(mcap_multi_record_tester src/testers/mcap_multi_record_tester.cpp)
|
||||
endif()
|
||||
set_target_properties(mcap_replay_tester PROPERTIES
|
||||
OUTPUT_NAME "mcap_replay_tester"
|
||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
|
||||
|
||||
set(CVMMAP_STREAMER_INSTALL_TARGETS cvmmap_streamer)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user