chromium::import!
巨集
將 :my_rust_lib
新增至 GN deps
之後,我們仍需瞭解如何從 my_rust_lib_unittest.rs
匯入及使用 my_rust_lib
。我們尚未為 my_rust_lib
提供明確的 crate_name
,因此系統會依據完整目標路徑和名稱來運算出 Crate 名稱。幸好,我們可從自動匯入的 chromium
Crate 中使用 chromium::import!
巨集,避免採用這類不方便的名稱:
chromium::import! {
"//ui/base:my_rust_lib";
}
use my_rust_lib::my_function_under_test;
在掩蓋之下,巨集會展開為類似如下的內容:
extern crate ui_sbase_cmy_urust_ulib as my_rust_lib;
use my_rust_lib::my_function_under_test;
詳情請參閱 chromium::import
巨集的文件註解。
rust_static_library
支援透過 crate_name
屬性指定明確名稱,但不建議這麼做。不建議的原因是 Crate 名稱在全域範圍內不得重複。crates.io 可保證其 Crate 名稱不重複,因此 cargo_crate
GN 目標會使用簡短的 Crate 名稱。此目標是由後續章節介紹的 gnrt
工具所產生。