BGraph
BGraph
is a tool designed to generate dependencies graphs from Android.bp
soong files.
Overview
BGraph
(for Build-Graphs
) is a project aimed at create build graphs from blueprints in AOSP and querying those graphs.
In short, this project builds/uses Unified Dependency Graph for the Android Open Source Project by parsing and linking modules
defined in the Android build system Soong.
Use-cases
You should use this tool if you want to find:
- all the dependencies of a source file in AOSP;
- all the sources involved in the building of a target in AOSP;
- common dependencies between two targets.
Usage
% bgraph --help
Usage: bgraph [OPTIONS] COMMAND [ARGS]...
BGraph - generate and query build dependency graphes.
BGraph is used to manipulate build dependency graphs generated from
blueprint files. The main commands are:
- generate : used to generates multiples graphs
- query: used to query a previously generated graph
To get more help, see the online documentation.
Options:
-v, --verbose Activate verbose output [default: False]
--install-completion Install completion for the current shell.
--show-completion Show completion for the current shell, to copy it or
customize the installation.
--help Show this message and exit.
Commands:
generate Generate BGraph's from a mirror dir.
generate-single Generate a BGraph from a branch.
list List the BGraph already generated.
query Query a BGraph.
Installation
Using poetry
poetry install bgraph
Using pip
pip install bgraph
Using docker
docker build -f docker/Dockerfile -t bgraph .
This will create a container with git
, repo
and bgraph
and will take some time (because it compiles git from the source).
See Docker for more instructions.
Prerequisites
- python3.8
Optional dependencies for the builder:
- repo
- git (>25): since we're using partial-checkouts, a modern version of git is required
- at least 1Go of free disk space
- (Optional: AOSP mirror)
See Building from AOSP for more details.