3 ms·
Why Rust in Android will use the Soong build system, not Cargo
- slezyr 5y agoIt seems that Google has more build systems that messengers: GN, Bazel, Soong, there were few more but I can not remember them.
- gutino 5y agoNinja! used in chrome/v8 https://en.wikipedia.org/wiki/Ninja_(build_system) https://en.wikipedia.org/wiki/Ninja_(build_system)
- slezyr 5y agoI think that ninja is fine, but I was wrong with the terms. All those are build automation tools[1] and ninja is a build system. Also, that article refers to GYP[2] yet another build automation tool from Google. 1: https://en.wikipedia.org/wiki/Build_automation https://en.wikipedia.org/wiki/Build_automation 2: https://en.wikipedia.org/wiki/GYP_(software) https://en.wikipedia.org/wiki/GYP_(software)
- gwmnxnp_516a 5y agoAt least Rust has far less building systems than C and C++ building system jungle: C, GNU Make, BSD Make, Windows Make, GNU autotools, and much more. Google may have a valid reason for not using Cargo, since they may need to integrate Rust with existing C and C++ code. It would be nice if Cargo had a way to build and link C and C++ dependencies in the same source tree as there are many C libraries which the functionality is still missing in Rust.
- stuaxo 5y agoGoogle just don't think it's worth integrating their stuff nicely with pre-existing things :-/
- anoncake 5y agoOne of the first uses for Rust was rewriting parts of Firefox yet "Cargo was not designed for integration into existing build systems"? That's hard to believe.
- glandium 5y agoFirefox uses cargo and has to go through a lot of hoops for the build system to work. And the result is flaky and far from ideal for fast builds. Build plans support would help but has not progressed in the past few years. Worse, it was removed. https://github.com/rust-lang/cargo/issues/5579#issuecomment-560471184 https://github.com/rust-lang/cargo/issues/5579#issuecomment-...
- laurentlb 5y agoA few months ago, Android (AOSP) announced it was moving from Soong to Bazel: https://blog.bazel.build/2020/11/12/aosp_migrating_to_bazel.html https://blog.bazel.build/2020/11/12/aosp_migrating_to_bazel.... Why would Rust in Android move to Soong? Who else is using Soong?