[TIMOB-27794] Android: Improve kroll-apt incremental build times with SDK
| GitHub Issue | n/a |
|---|---|
| Type | Improvement |
| Priority | High |
| Status | Closed |
| Resolution | Fixed |
| Resolution Date | 2020-03-09T17:55:42.000+0000 |
| Affected Version/s | n/a |
| Fix Version/s | Release 9.0.0 |
| Components | Android |
| Labels | android, build, kroll, performance, sdk |
| Reporter | Joshua Quick |
| Assignee | Joshua Quick |
| Created | 2020-03-07T02:55:52.000+0000 |
| Updated | 2020-03-11T02:00:49.000+0000 |
Description
*Summary:*
The Titanium SDK incremental build times should be improved. Every time we make a Java code change in the Titanium SDK library, our "kroll-apt" Java annotation processor always re-generates C++ files for all Java proxies in our library, even if the proxy classes haven't changed.
*Note:*
On my machine, the build system recognizes that the re-generated C++ files haven't changed since the last build and does an incremental C++ build. On [~gmathews]' machine, the C++ incremental build does not work at all and recompiles all C++ files.
Incremental build times after making a Java code changes takes
20s for me and ~1 minute for Gary.
*To-Do:*
When our "kroll-apt" Java annotation processor reads all @Kroll annotations, it should read the last written JSON bindings file to see if the bindings have changed since the last build. If not, do not re-generate the proxy C++ files... unless the files are missing.
PR (master): https://github.com/appcelerator/titanium_mobile/pull/11519
PR (9.0.x): https://github.com/appcelerator/titanium_mobile/pull/11525