#metadata #manifest #flipper-zero #cargo-toml #cargo-metadata #fam

nightly build flipper0-fam-build

Flipper0 应用程序清单生成器

7 个版本

0.1.6 2022年11月5日
0.1.5 2022年10月17日

#8#flipper-zero

每月下载 24 次
4 个crate中使用 (直接使用 2 个)

MIT 许可证

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