Files
rtabmap/docs-report.sh
T
2026-05-17 00:00:42 -07:00

82 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# Generate Doxygen HTML at doc/html/index.html
# Run from anywhere; defaults: build dir = build-docs, output = doc/html/
# Override build tree: DOCS_BUILD_DIR=/path/to/build ./docs-report.sh
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BUILD_DIR="${DOCS_BUILD_DIR:-$ROOT/build-docs}"
HTML_DIR="${DOCS_HTML_DIR:-$ROOT/doc/html}"
DOXY_INPUT_OVERRIDE="${DOCS_DOXY_INPUT:-$ROOT/.doxygen-input}"
need_cmd() {
command -v "$1" >/dev/null 2>&1 || {
echo "Error: required command not found: $1" >&2
exit 1
}
}
need_cmd cmake
need_cmd doxygen
need_cmd gcc
configure_docs_build() {
cmake -B "$BUILD_DIR" \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=OFF \
-DBUILD_APP=OFF \
-DBUILD_TOOLS=OFF \
-DBUILD_EXAMPLES=OFF \
-DWITH_QT=OFF \
-DWITH_PYTHON=OFF \
-DWITH_CERES=OFF \
-DWITH_G2O=OFF \
-DWITH_GTSAM=OFF \
-DWITH_MRPT=OFF \
-DWITH_VERTIGO=OFF \
-DWITH_CVSBA=OFF \
-DWITH_POINTMATCHER=OFF \
-DWITH_CCCORELIB=OFF \
-DWITH_OPEN3D=OFF \
-DWITH_LOAM=OFF \
-DWITH_FLOAM=OFF \
-DWITH_LIOSAM=OFF \
-DWITH_FLYCAPTURE2=OFF \
-DWITH_ZED=OFF \
-DWITH_ZEDOC=OFF \
-DWITH_REALSENSE=OFF
}
if [[ ! -f "$BUILD_DIR/CMakeCache.txt" ]]; then
echo "Configuring $BUILD_DIR (export headers for Doxygen)..."
configure_docs_build
elif ! grep -q '^BUILD_TESTING:BOOL=OFF' "$BUILD_DIR/CMakeCache.txt" 2>/dev/null; then
echo "Reconfiguring $BUILD_DIR for documentation..."
configure_docs_build
fi
export_header="$BUILD_DIR/corelib/src/include/rtabmap/core/rtabmap_core_export.h"
if [[ ! -f "$export_header" ]]; then
echo "Error: missing $export_header (CMake configure did not generate export header)" >&2
exit 1
fi
default_build_dir="$ROOT/build-docs"
if [[ "$BUILD_DIR" == "$default_build_dir" ]]; then
echo "Running Doxygen..."
doxygen "$ROOT/Doxyfile"
else
printf 'INPUT = corelib/include utilite/include %s/corelib/src/include\n' "$BUILD_DIR" \
>"$DOXY_INPUT_OVERRIDE"
echo "Running Doxygen (INPUT override: $DOXY_INPUT_OVERRIDE)..."
doxygen "$ROOT/Doxyfile" "$DOXY_INPUT_OVERRIDE"
fi
if [[ ! -f "$HTML_DIR/index.html" ]]; then
echo "Error: expected $HTML_DIR/index.html after Doxygen run" >&2
exit 1
fi
echo ""
echo "Done: $HTML_DIR/index.html"