llvm-project
82ae419a - [docs] Build intersphinx inventories locally for cross-project links

Commit
3 days ago
[docs] Build intersphinx inventories locally for cross-project links Resolving `inv:` links against the published inventories makes a docs build need the network, and it cannot resolve a link to a label that the same change adds, because the published site does not have it yet. An inventory only depends on what Sphinx learns while reading the sources, not on whether any cross-project link resolved. Add an `inventory` builder that reads a project's sources and writes only its `objects.inv`. With CMake, each of llvm, clang, clang-tools-extra, lld, lldb, flang, and polly gets a docs-<project>-inventory target that reuses the prerequisites of its html target. The llvm and clang docs depend on all of them and resolve links against the local files. Links still point at the published sites. MyST resolves `inv:` links while reading and caches the result, so the inventory contents are part of the environment-affecting config; a changed inventory re-reads the documents instead of leaving stale links. These projects must be configured together, so CMake now stops with a message naming any that are missing. LLVM_SPHINX_FETCH_INVENTORIES=ON restores fetching the published inventories. The runtimes are configured separately and cannot share inventories, so their links are plain URLs again. docs.yml builds the projects from one configuration, and the release script enables lldb and installs swig for its docs. Also wrap two `inv:` link targets that contain spaces, which Markdown rendered as literal text. LLM-aided
Author
rnk rnk
Committer
rnk rnk
Parents
Loading