Remove droidstubs timestamps from droidcore dependencies
Currently, {check current api timestamp, check last released api
timestamp, api lint timestmp, check nullabilty warnings timestamp} of
all droidstubs modules are dependencies of `droidcore`. In other words,
metalava build action is run for all droidstubs modules when building
`droid` even if the stubs of the module is not used.
This is problematic from build performance perspective, as the
computation-heavy metalava build action would run in all `m` builds just
for building the timestamp files even if the stubs is not built. To fix
this behavior, this change modifies the dependencies between the
timestamp files. Specifically, all non-null non-check current api
timestamp timestamp files are now validations of the check current api
timestamp file. Given that the check current api timestamp files are the
validations of (from-text) stubs, all other timestamp files will be
built when the stubs are consumed. To summarize the changes of the
behavior:
Currently without this change:
- check current api timestamp files of all droidstubs modules are built
when building `checkapi` and `droid`
- check last released timestamp files of all droidstubs modules are
built when building `checkapi` and `droid`
- api lint timestamp files of all droidstubs modules are built when
building `checkapi` and `droid`
- check nullability warnings timestamp files of all droidstubs modules
are built when building `droid`
With this change:
- check current api timestamp files of all droidstubs modules are built
when building `checkapi`, but are only built when the stubs are built
when building `droid`.
- check last released timestamp files of all droidstubs modules are
built when building `checkapi`, but are only built when the stubs are
built when building `droid`.
- api lint timestamp files of all droidstubs modules are built when
building `checkapi`, but are only built when the stubs are built when
building `droid`.
- check nullability warnings timestamp files are built when building
`checkapi`, but are only built when the stubs are built when building
`droid`.
Note that the check nullability timestamp files were not built when
building `checkapi`, but are now built alongside with the check current
api timestamp files.
Test: diff aninja query of checkapi timestamp files
Bug: 389719475
Change-Id: Ic12b97ff7a7f1b230e8859e12de8fef8c3c1c832
Loading
Please register or sign in to comment