ビルドのルール
Android ビルドシステム(Soong)は、さまざまなモジュールを通じて Rust をサポートしています。
モジュール タイプ | 説明 |
---|---|
rust_binary | Rust バイナリを生成します。 |
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 | ソースを生成し、C ライブラリへの Rust バインディングを含む Rust ライブラリを生成します。 |
次に rust_binary
と rust_library
を見ていきます。
追加で次の項目に言及することをおすすめします。
-
Cargo は多言語リポジトリ用に最適化されていません。また、インターネットからパッケージをダウンロードします。
-
コンプライアンスおよびパフォーマンス上の理由から、Android ではクレートをツリー内に配置する必要があります。また、C /C++ / Java コードとの相互運用性も必要です。Soong を使用することで、そのギャップを埋めることができます。
-
Soong has many similarities to Bazel, which is the open-source variant of Blaze (used in google3).
-
豆知識: スタートレックの「データ」は、スン(Soong)型アンドロイドです。