#build-time #assets #codegen #dynamically #generate #generation #includer

build includer_codegen

Dynamically include assets at build time through code generation

4 releases

Uses old Rust 2015

0.2.1 Sep 24, 2018
0.2.0 Sep 18, 2018
0.1.1 Sep 17, 2018
0.1.0 Sep 14, 2018

#55 in #dynamically

Apache-2.0 OR MIT

32KB
468 lines

includer_codegen Build Status Documentation

This crate is intended to be used at build time to generate code that includes your assets. The "frontend" library includer provides the types for your library/binary that includer_codegen outputs, along with some helpers.

The following is a build.rs file that includes all the files (recursively) in the subdirectory resources in a cargo project.

extern crate includer_codegen;

use includer_codegen::prelude::*;
use std::env;
use std::path::PathBuf;

fn main() {
    let cargo_dir = env::var("CARGO_MANIFEST_DIR").unwrap();
    let resources_path = PathBuf::from(cargo_dir).join("resources");
    let resources = Assets::new("ASSETS", resources_path).build();

    Codegen::new().pipe(resources).write();
}

Filtering

Filtering files is possible by included filter types. Currently there are built-in ways to include/exclude based on file extension or regex. See the documentation for the api to use these built-in filters.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~2.6–10MB
~98K SLoC