[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