-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.rs
32 lines (26 loc) · 950 Bytes
/
build.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use build_helpers::prelude::*;
use cargo_toml::Manifest;
use serde::Deserialize;
use std::env;
use std::path::PathBuf;
#[derive(Debug, Deserialize)]
#[serde(rename_all = "kebab-case")]
struct Metadata {
copy_files: GlobCopySet,
foreign_dependencies: ForeignDependenciesDetail,
gresources: GResourcesDetail,
}
fn main() {
let curr_dir = env::current_dir().unwrap();
let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
let manifest: Manifest<Metadata> = Manifest::from_path_with_metadata("Cargo.toml").unwrap();
let metadata = manifest.package.unwrap().metadata.unwrap();
println!("Output directory: {:?}", out_dir);
// println!("Manifest: {:#?}", manifest);
copy_globs(&metadata.copy_files, &curr_dir, &out_dir);
metadata.foreign_dependencies.update_all(&out_dir);
metadata
.gresources
.to_gresources(&out_dir)
.compile(out_dir.join("assets/compiled.gresource"));
}