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