Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions data_tamer_cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,35 @@ 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 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)
option(DATA_TAMER_BUILD_EXAMPLES "Build examples" ON)
Expand Down Expand Up @@ -34,6 +63,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()
Expand Down
Loading