flipper0-fam-build

Crates.ioflipper0-fam-build
lib.rsflipper0-fam-build
version0.1.6
sourcesrc
created_at2022-10-05 20:52:09.774208
updated_at2022-11-05 11:12:00.470052
descriptionFlipper0 Application Manifest generator
homepagehttps://github.com/boozook/flipper0/tree/master/build/fam-build
repositoryhttps://github.com/boozook/flipper0.git
max_upload_size
id680752
size26,300
Alexander Koz. (boozook)

documentation

https://docs.rs/flipper0-fam-build

README

Flipper Zero Application Manifest Generator

Builds FAM from one of two possible sources:

  • Metadata in the crate manifest (usually Cargo.toml)
  • Flipper.toml near by crate manifest

Uses cargo metadata.

Usage

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());
}

Entry-point main

Metadata field package.metadata.fam.main is required by default.

But it's optional if feature optional_entry_point enabled. That optionality needed in cases when this used in couple with macro crate that also writes to manifest. So you can omit package.metadata.fam.main in that case.

Examples


Official format documentation.

Commit count: 65

cargo fmt