chromium::import!
マクロ
GN の deps
に :my_rust_lib
を追加した後も、my_rust_lib_unittest.rs
から my_rust_lib
をインポートして使用する方法について学ぶ必要があります。my_rust_lib
には明示的な crate_name
が指定されていないため、クレート名はターゲットのフルパスと名前に基づいて生成されます。幸い、自動的にインポートされる chromium
クレートから 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
プロパティによる明示的な名前の指定をサポートしていますが、クレート名はグローバルに一意である必要があるため、これは推奨されません。crates.io はクレート名の一意性を保証しているため、cargo_crate
GN ターゲット(後述の gnrt
ツールで生成)は短いクレート名を使用します。