object-deps-report
An spl-core build extension that generates the object-file dependency graph report for a variant using clanguru.
The extension wires a CMake custom target objects-deps into the variant build.
Because the report is built from the object files listed in
compile_commands.json, the target depends on the linked executable (so every
object is guaranteed to exist) and on compile_commands.json. Running the target
invokes clanguru analyze to produce an interactive HTML dependency graph.
Installation
Install this via pip (or your favorite package manager):
pip install object_deps_report
Then, in the consuming spl-core project's CMakeLists.txt, after spl.cmake and
the variant parts are included:
include(".venv/Lib/site-packages/object_deps_report/index.cmake")
Usage
Build the project first (so the executable and all objects exist), then build the report target:
cmake --build build/<variant>/<build_kit> --target objects-deps
The report is written to
build/<variant>/<build_kit>/reports/object_dependencies.html.
How it works
The extension needs no configuration file and reads no KConfig/autoconf state.
Its index.cmake (included from your CMakeLists.txt) defers a hook to the end of
CMake configure that runs object_deps_report generate ...; that writes
object_deps_report.cmake into the build directory and include()s it. The
generated file contains:
- an
add_custom_commandthat runsclanguru analyze --compilation-database ${CMAKE_BINARY_DIR}/compile_commands.json --output-file <report>; DEPENDS $<TARGET_FILE:${LINK_TARGET_NAME}> ${CMAKE_BINARY_DIR}/compile_commands.json— spl-core's linked executable target (so every object is built first, and the report regenerates when the binary changes) plus the compilation database (spl-core setsCMAKE_EXPORT_COMPILE_COMMANDS ON, so it always exists);add_custom_target(objects-deps DEPENDS <report>)— not part of the default (ALL) build, so the report is produced on demand.
The
linktarget exists only for theprodbuild kit (test kits build per-component GTest executables), so runobjects-depsin a prod build.
Start developing
The project is managed with uv and orchestrated by pypeline. Bootstrap the environment and run the full pipeline (venv, pre-commit, tests) with:
pypeline run
Committing changes
This repository uses commitlint for checking if the commit message meets the conventional commit format. Commit messages drive the automated release.
Continuous integration & release
CI runs on GitHub Actions (.github/workflows/ci.yml): lint (pre-commit),
commitlint, a test matrix (Python 3.10/3.13 × Ubuntu/Windows), and a release job.
Releases are automated with python-semantic-release:
merging to main bumps the version from the conventional-commit history and
publishes to PyPI (trusted publishing) and GitHub Releases.
Credits
This package was created with Copier and the browniebroke/pypackage-template project template.
Metadata
Release files for object-deps-report 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| object_deps_report-0.0.1.tar.gz | 7.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| object_deps_report-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.9 kB
Release files / object_deps_report-0.0.1.tar.gz
| Download URL | object_deps_report-0.0.1.tar.gz |
|---|---|
| Size | 7.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e97d349a385081503fd6254ed55c833e7f5677ecf923b5a53e0a69710a4c083e
|
|
BLAKE2b-256 checksum How to use checksums |
1fdecf9b2fc0a535aa3cacc3bd21bd5d93da96edd4f0211f34d201ad6236097d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.
Transparency logRelease files / object_deps_report-0.0.1-py3-none-any.whl
| Download URL | object_deps_report-0.0.1-py3-none-any.whl |
|---|---|
| Size | 9.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
45c559bd01432e54e8121c6eb227ab755e4b046af71e3ee8077ae3412f00bbe2
|
|
BLAKE2b-256 checksum How to use checksums |
a5c6fe5277fd033af3bd5d37c40a179703f440c0d33132aaf464fc5370d68c03
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.
Transparency log