Python-based tool project for parsing AOSP device mk file dependencies for lunch target and presenting output in PlantUML format.
Script should be run from AOSP tree for sourced lunch target. For example:
$ . ./build/envsetup.sh
$ lunch ncar_x86-userdebug
$ cd vendor/nkh-lab/tools/devicemk-parser/
And run the script:
$ python parse_devicemk.py
Parsing make files dependencies...
device/nkh-lab/ncar/ncar_x86.mk
device/nkh-lab/ncar/ncar_x86/BoardConfig.mk
device/generic/car/emulator/aosp_car_emulator.mk
build/make/target/product/aosp_x86.mk
device/nkh-lab/ncar/ncar_x86/device-ncar_x86.mk
device/generic/car/generic_car_x86/BoardConfig.mk
device/generic/car/common/car.mk
...
build/make/target/product/base_vendor.mk
build/make/target/product/runtime_libart.mk
build/make/target/product/default_art_config.mk
============================================
Parsed files: 72, Warnings: 0, Time spent: 0m 13s
Generated output:
PUML: /home/mykola/Projects/my/ncar/vendor/nkh-lab/tools/devicemk-parser/ncar_x86.puml
For more options, see the script help:
$ python parse_devicemk.py -h
Following output examples were obtained from parsing NCAR - Android Automotive Emulator AOSP project for ncar_x86-userdebug
target:
- PlantUML output file
- text output file (more for tool debugging needs)
The following is an example of graphical PlantUML presentation, where PlantUML output file was converted into SVG image by using PlantUML Extension for Visual Studio Code (also output file can be converted using PlantUML online interpreter):