Files
android_development/tools/ninja_dependency_analysis
Jeongik Cha 1408cdc5e6 Ninja dependency analysis tool
The tool collects every input file for target except exempted_files.
And also, it counts input files per each project.

Bug: 238156000
Test: collect_ninja_inputs \
  -n prebuilts/build-tools/linux-x86/bin/ninja \
  -f out/combined-aosp_cf_x86_64_phone.ninja \
  -t vendorimage \
  -e exempted_files \
  -r .repo/project.list

Change-Id: I19b8b3462a1f1766babe4d437fe71bd7eb4bc7d2
2022-07-08 01:28:37 +00:00
..
2022-07-08 01:28:37 +00:00
2022-07-08 01:28:37 +00:00
2022-07-08 01:28:37 +00:00

./development/tools/ninja_dependency_analysis/collect_inputs.py -n <ninja binary> -f <ninja file> -t <target> -e <exempted_files> -r <repo project file> or -m <repo manifest file>

For example ./development/tools/ninja_dependency_analysis/collect_inputs.py -n prebuilts/build-tools/linux-x86/bin/ninja -f out/combined-aosp_cf_x86_64_phone.ninja -t vendorimage -e development/tools/ninja_dependency_analysis/exempted_files -r .repo/project.list

Output:

{
    "inputs": [
        "foo/my.java",
        "foo/my2.java",
        "bar/my.cpp"
    ],
    "project_count": {
        "foo": 2,
        "bar": 1
    },
    "total_project_count": 2,
    "total_input_count": 3
}