From e71d99b3267c1160e68945ad83fe83f6e544b44a Mon Sep 17 00:00:00 2001 From: sinaaghli Date: Mon, 11 Aug 2025 09:53:20 -0600 Subject: [PATCH 1/2] adds missing zstd and lz4 deps that mcap lib needs --- data_tamer_cpp/CMakeLists.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/data_tamer_cpp/CMakeLists.txt b/data_tamer_cpp/CMakeLists.txt index 0f16b10..6bded9d 100644 --- a/data_tamer_cpp/CMakeLists.txt +++ b/data_tamer_cpp/CMakeLists.txt @@ -7,6 +7,11 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +# Find system dependencies for mcap +find_package(PkgConfig REQUIRED) +pkg_check_modules(ZSTD REQUIRED libzstd) +pkg_check_modules(LZ4 REQUIRED liblz4) + if(${CMAKE_PROJECT_NAME} STREQUAL ${PROJECT_NAME}) option(DATA_TAMER_BUILD_TESTS "Build tests" ON) option(DATA_TAMER_BUILD_EXAMPLES "Build examples" ON) @@ -34,6 +39,15 @@ find_package(mcap QUIET) if(NOT mcap_FOUND AND NOT DATA_TAMER_BUILD_ROS) set(USE_VENDORED_MCAP ON) message(STATUS "MCAP from 3rdparty") + + # Pass pkg-config variables to mcap subdirectory + set(ZSTD_INCLUDE_DIR ${ZSTD_INCLUDE_DIRS}) + set(ZSTD_LIBRARY ${ZSTD_LIBRARIES}) + set(ZSTD_FOUND TRUE) + set(LZ4_INCLUDE_DIR ${LZ4_INCLUDE_DIRS}) + set(LZ4_LIBRARY ${LZ4_LIBRARIES}) + set(LZ4_FOUND TRUE) + add_subdirectory(3rdparty/mcap) set(mcap_LIBRARY mcap_lib) else() From c32dceb705ba287d477a619ea4643c67f0c64e5f Mon Sep 17 00:00:00 2001 From: sinaaghli Date: Mon, 11 Aug 2025 10:48:17 -0600 Subject: [PATCH 2/2] add fallback finds --- data_tamer_cpp/CMakeLists.txt | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/data_tamer_cpp/CMakeLists.txt b/data_tamer_cpp/CMakeLists.txt index 6bded9d..6b23373 100644 --- a/data_tamer_cpp/CMakeLists.txt +++ b/data_tamer_cpp/CMakeLists.txt @@ -8,9 +8,33 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) # Find system dependencies for mcap -find_package(PkgConfig REQUIRED) -pkg_check_modules(ZSTD REQUIRED libzstd) -pkg_check_modules(LZ4 REQUIRED liblz4) +find_package(PkgConfig QUIET) +if(PkgConfig_FOUND) + pkg_check_modules(ZSTD REQUIRED libzstd) + pkg_check_modules(LZ4 REQUIRED liblz4) +else() + # Fallback: try to find libraries manually + find_library(ZSTD_LIBRARY NAMES zstd libzstd) + find_path(ZSTD_INCLUDE_DIR NAMES zstd.h) + find_library(LZ4_LIBRARY NAMES lz4 liblz4) + find_path(LZ4_INCLUDE_DIR NAMES lz4.h) + + if(ZSTD_LIBRARY AND ZSTD_INCLUDE_DIR) + set(ZSTD_FOUND TRUE) + set(ZSTD_LIBRARIES ${ZSTD_LIBRARY}) + set(ZSTD_INCLUDE_DIRS ${ZSTD_INCLUDE_DIR}) + endif() + + if(LZ4_LIBRARY AND LZ4_INCLUDE_DIR) + set(LZ4_FOUND TRUE) + set(LZ4_LIBRARIES ${LZ4_LIBRARY}) + set(LZ4_INCLUDE_DIRS ${LZ4_INCLUDE_DIR}) + endif() + + if(NOT ZSTD_FOUND OR NOT LZ4_FOUND) + message(FATAL_ERROR "Could not find ZSTD or LZ4 libraries. Please install libzstd-dev and liblz4-dev packages.") + endif() +endif() if(${CMAKE_PROJECT_NAME} STREQUAL ${PROJECT_NAME}) option(DATA_TAMER_BUILD_TESTS "Build tests" ON)