构建规则
Android 构建系统(Soong)通过一系列模块来支持Rust:
Module Type | 描述 |
---|---|
rust_binary | Produces a Rust binary. |
rust_library | 生成一个 Rust 库,并提供 rlib 和 dylib 两种变体。 |
rust_ffi | 生成一个可由 cc 模块使用的 Rust C 库,并提供静态和共享两种变体。 |
rust_proc_macro | 生成“proc-macro”Rust 库。这些宏与编译器插件类似。 |
rust_test | 生成使用标准 Rust 测试框架的 Rust 测试二进制文件。 |
rust_fuzz | 生成使用 libfuzzer 的 Rust 模糊测试二进制文件。 |
rust_protobuf | 生成源代码并生成为特定 protobuf 提供接口的 Rust 库。 |
rust_bindgen | 生成源代码并生成包含 Rust 绑定到 C 库的 Rust 库。 |
下面我们来看看 rust_binary
和 rust_library
。
演讲者可能会提及其他内容:
-
Cargo 未针对多语言代码库进行优化,并且从互联网下载软件包。
-
For compliance and performance, Android must have crates in-tree. It must also interop with C/C++/Java code. Soong fills that gap.
-
Soong has many similarities to Bazel, which is the open-source variant of Blaze (used in google3).
-
趣味小知识:《星际迷航》中的数据是 Soong 类型的 Android。