diff --git a/beluga/CMakeLists.txt b/beluga/CMakeLists.txt index 9949806e6..ba1217061 100644 --- a/beluga/CMakeLists.txt +++ b/beluga/CMakeLists.txt @@ -38,6 +38,10 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") endif() find_package(Eigen3 REQUIRED NO_MODULE) +find_package( + HDF5 + COMPONENTS CXX + REQUIRED) find_package(range-v3 REQUIRED) find_package(Sophus REQUIRED) find_package(TBB REQUIRED) @@ -46,10 +50,12 @@ add_library(${PROJECT_NAME} INTERFACE) target_include_directories( ${PROJECT_NAME} INTERFACE "$" - "$") + "$" + "${HDF5_INCLUDE_DIRS}") target_link_libraries( ${PROJECT_NAME} INTERFACE Eigen3::Eigen + ${HDF5_CXX_LIBRARIES} Sophus::Sophus TBB::tbb range-v3::range-v3) diff --git a/beluga/cmake/Config.cmake.in b/beluga/cmake/Config.cmake.in index dcfb5f50f..8d7b0e44f 100644 --- a/beluga/cmake/Config.cmake.in +++ b/beluga/cmake/Config.cmake.in @@ -3,6 +3,7 @@ include(CMakeFindDependencyMacro) find_dependency(Eigen3 REQUIRED NO_MODULE) find_dependency(range-v3 REQUIRED) +find_dependency(HDF5 COMPONENTS CXX REQUIRED) find_dependency(Sophus REQUIRED) find_dependency(TBB REQUIRED) diff --git a/beluga/package.xml b/beluga/package.xml index 2cdcbf0f4..0c6e33fa2 100644 --- a/beluga/package.xml +++ b/beluga/package.xml @@ -15,6 +15,7 @@ cmake eigen + libhdf5-dev range-v3 sophus tbb diff --git a/docker/run.sh b/docker/run.sh index de627538e..769ad4716 100755 --- a/docker/run.sh +++ b/docker/run.sh @@ -66,10 +66,18 @@ while [[ "$1" != "" ]]; do esac done -# Note: The `--build` flag was added to docker compose run after -# https://github.com/docker/compose/releases/tag/v2.13.0. -# We have this for convenience and compatibility with previous versions. -# Otherwise, we could just forward the script arguments to the run verb. -[[ "$BUILD" = true ]] && docker compose build dev +DEV_CONTAINER_NAME=beluga_dev -PRIVILEGED_CONTAINER=$PRIVILEGED_CONTAINER USERID=$(id -u) GROUPID=$(id -g) docker compose run --rm dev +# Kill the container JIC it already exists, if building, to ensure we don't attach to an old container. +[[ "$BUILD" = true ]] && docker compose build dev && docker rm -f $DEV_CONTAINER_NAME 2>/dev/null + +# Check if the container exists +if docker ps -a --format '{{.Names}}' | grep -q $DEV_CONTAINER_NAME; then + # Attach to the container if it is running + echo "Found dev container running, attaching to it..." +else + echo "Container '$DEV_CONTAINER_NAME' does not exist or is not running, proceeding to run it." + PRIVILEGED_CONTAINER=$PRIVILEGED_CONTAINER USERID=$(id -u) GROUPID=$(id -g) docker compose run --rm --detach --name $DEV_CONTAINER_NAME dev +fi + +docker exec -it $DEV_CONTAINER_NAME /ros_entrypoint.sh /bin/bash