7 个版本
0.1.6 | 2022年11月5日 |
---|---|
0.1.5 | 2022年10月17日 |
#8 在 #flipper-zero
每月下载 24 次
在 4 个crate中使用 (直接使用 2 个)
41KB
722 行
Flipper Zero 应用程序清单 生成器
从两种可能来源构建 FAM
- crate 清单中的元数据(通常是 Cargo.toml)
- crate 清单附近的 Flipper.toml
使用 cargo metadata
。
使用方法
Cargo.toml
[package]
build = "build.rs"
# ...
[package.metadata.fam]
main = "init"
name = "Hello, Flipper" # optional, default is crate name
# id = "hello-flipper" # optional, default is crate name
# type = "FlipperAppType.EXTERNAL" # optional, default is FlipperAppType.EXTERNAL
# icon-file = "icon_10px.png" # optional, path relative to the root of crate
# category = "Misc" # optional, default Misc
[build-dependencies.fam-build]
package = "flipper0-fam-build"
version = "*"
build.rs
fn main() {
let fam = fam_build::manifest().unwrap();
let path = fam.save_to_out_dir().unwrap();
// or... fam.save_to(some other path)
println!("Exported FAM path: {}", path.display());
}
入口点 main
默认情况下,需要元数据字段 package.metadata.fam.main
。
但是,如果启用了功能 optional_entry_point
,则是可选的。这种可选择性在用于与 宏crate 结合使用的情况下是必需的,该crate也会写入清单。因此,在这种情况下可以省略 package.metadata.fam.main
。
示例
依赖关系
~3–4MB
~83K SLoC