I'm looking into best practice LTS support for Google GN based projects. This includes Chromium, Flutter, SKIA, etc.
The weakness I see today for GN projects is that it's a build system within a build system, and doesn't support idiomatic download caching, download vs patching isn't clear as it should be, etc.
Two approaches to resolve this come to mind:
1. Do something similar to how meta-rust does it. Pre-process GN build files and generate Yocto recipes using a hostside tool (similar to cargo-bitbake for meta-rust). This would skip usage of gclient entirely, and the tradeoff is to incur download performance penalty.
2. Implement build parsing in a gclient/gn fetcher class.
I feel the first approach would be easier to maintain and provide better flexibility. It would incur a new host dependency, and require an additional step to generate an updated recipe.
I suspect the second approach would be an OE maintenance headache, as complexities would be directly exposed in OE. Is this why gclient fetcher support came and went?
I'm figuring/hoping there are a few opinions floating around on this subject.
Is there a better approach?