Rust 生態系統中的許多工具都假設您使用的是 Cargo。適用於
這在建構中沒有對應項目 但可以利用
正在產生 Cargo.toml
檔案。您可以執行 Cargo 本身 (以下項目為 cargo check
執行個體)。
這項功能由志工負責維護。GN 和 Cargo 進行過設計
不相符可能會導致產生的 Cargo.toml
檔案無法運作
不需要手動調整正因如此
未正式支援;有時候可能會發生故障
正在產生 Cargo.toml
個檔案
如要根據 GN 的建構圖產生 Cargo 檔案,請將 --cargo-toml-gen
新增至
fx set
指令或 //build/rust:cargo_toml_gen
目標設為 $OUT_DIR/args.gn
的
universe_package_labels
。這會在 gn gen
增加幾秒鐘。請務必執行
更新設定後,可以顯示完整的 fx build
:
fx set PRODUCT.BOARD --cargo-toml-gen <other fx args>
fx build
注意:如果需要 Cargo.toml
才能完成 fx build
,例如
必須執行 cbindgen
才能為 Rust Crate 產生新的 C 繫結,您可以
而必須改用 //build/rust:cargo_toml_gen
建構目標。這個目標只會
建構 Cargo.toml
檔案
多數編輯器會要求 Cargo.toml
檔案必須位於相鄰的位置
src/
目錄。可以使用下列指令產生這些檔案的符號連結
指令,其中 //foo/path/to/target:some_label
是您想要的 GN 目標
編輯作業:
fx gen-cargo foo/path/to/target:some_label
注意:上述方法不適用於 rustc_staticlib
目標,例如鐵鏽色
用來產生 C 繫結的 Crate 通常會使用 rustc_staticlib
目標
範本。針對 rustc_staticlib
目標,您應該改用下列指令。
fx gen-cargo foo/path/to/target:_some_label_rustc_static
請注意,這個標籤必須指向 rustc_...
GN 範本
(非 Fuchsia 套件或其他 GN 目標)。例如:
rustc_binary("some_label") {
...
}
正在產生 .cargo/config 檔案
部分外掛程式需要 .cargo/config
檔案,才能讓 Cargo 在 Fuchsia 中正常運作
(例如執行 cargo check
)。如要輕鬆產生這個檔案,請使用 fargo
工具。
- 安裝擴充功能
執行下列指令,將
rustup
設為使用 Fuchsia Rust 工具鍊:rustup toolchain link fuchsia $($FUCHSIA_DIR/scripts/youcompleteme/paths.py VSCODE_RUST_TOOLCHAIN) rustup default fuchsia
按照下列步驟在
$FUCHSIA_DIR
中複製並安裝fargo
工具: 適用於 Fargo 的入門指南。建立設定:
cd $FUCHSIA_DIR && fargo write-config # Note the caveats about changing architecture in the fargo readme # https://fuchsia.googlesource.com/fargo/#creating-a-cargo_config