tree: 8dfe25d48a2d9b435d07beb4c51806f31f70b66b [path history] [tgz]
  1. examples/
  2. patches/
  3. src/
  4. .android-checksum.json
  5. .cargo-checksum.json
  6. Android.bp
  7. Cargo.lock
  8. Cargo.toml
  9. cargo_embargo.json
  10. LICENSE
  11. METADATA
  12. MODULE_LICENSE_MIT
  13. Readme.md
crates/android_bp/Readme.md

android-bp

a rust crate to parse Android.bp files

Usage

    use android_bp::BluePrint;

    let bp = BluePrint::from_file("fixtures/Android.bp").unwrap();
    println!("{:#?}", bp);

    // variables are accessible as a rust HashMap
    println!("{:#?}", bp.variables);
    for m in &bp.modules {
        if m.typ == "rust_binary" {
            println!("{:?}", m.get("name").unwrap());
        }
    }
    // or iter them by type
    for m in bp.modules_by_type("rust_host_test") {
        // m.get return an sometime inconvenient Option<&Value>
        // so some helper methods are provided
        let name = m.get_string("name").unwrap();
        let srcs = m.get_array("srcs").unwrap();
        println!("{:?} {:?}", name, srcs);
    }