mirror of
https://github.com/introlab/rtabmap.git
synced 2026-10-04 17:17:47 +08:00
added doc CI job
This commit is contained in:
Executable
+81
@@ -0,0 +1,81 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user