Building the documentation¶
Prerequisites¶
QMeshLab compiled with
QMESHLAB_PYTHON_CONSOLE=ON(default).Python packages from
docs/requirements.txt.
Step 1 — Generate the API source files¶
cmake -S . -B build -G Ninja \
-DQMESH_REQUIRE_VCPKG_DEPS=OFF \
-DQMESH_MACOS_BUNDLE_ICON=OFF \
-DQMESHLAB_PYTHON_CONSOLE=ON \
-Dnanobind_DIR="$(python -m nanobind --cmake_dir)" \
-DQMESH_PLUGIN_OBJ_RAPIDOBJ=OFF \
-DQMESH_PLUGIN_E57=OFF \
-DQMESH_PLUGIN_GLTF=OFF \
-DQMESH_PLUGIN_FILTER_FUNC=OFF \
-DQMESH_PLUGIN_FILTER_EMBREE=OFF
cmake --build build --target QMeshLab -j8
QT_QPA_PLATFORM=offscreen ./build/QMeshLab --generate-docs docs
This introspects the _qmeshlab module from within the running app,
reads all filters.json files, and writes the reStructuredText and MyST
Markdown sources into docs/api/.
The QMESH_REQUIRE_VCPKG_DEPS=OFF option is used here because the
documentation build only needs the app binary for Python/API introspection and
the CI job does not activate the vcpkg toolchain. The listed plugin options
disable dependency-gated plugins that otherwise require vcpkg-provided
libraries. For full local documentation with every dependency-gated plugin
enabled, configure with the normal vcpkg toolchain instead.
Step 2 — Build the HTML site¶
pip install -r docs/requirements.txt
sphinx-build docs docs_build
# open docs_build/index.html
CI pipeline¶
The GitHub Action at .github/workflows/docs.yml automates both steps
on every push to main and deploys the result to GitHub Pages.