-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.rs
47 lines (41 loc) · 1.64 KB
/
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
use schema::backend_schema;
use schema::control_schema;
use schema::signal_schema;
use std::env;
use std::fs;
use std::path::Path;
fn main() {
println!("cargo:rerun-if-changed=src/graphql/backend_query_tmpl.rs");
println!("cargo:rerun-if-changed=src/graphql/control_query_tmpl.rs");
println!("cargo:rerun-if-changed=src/graphql/signal_query_tmpl.rs");
let out_dir = env::var_os("OUT_DIR").unwrap();
let backend_gql = Path::new(&out_dir).join("backend_schema.gql");
let control_gql = Path::new(&out_dir).join("control_schema.gql");
let signal_gql = Path::new(&out_dir).join("signal_schema.gql");
let backend_rs = Path::new(&out_dir).join("backend_query.rs");
let control_rs = Path::new(&out_dir).join("control_query.rs");
let signal_rs = Path::new(&out_dir).join("signal_query.rs");
fs::write(&backend_gql, backend_schema()).unwrap();
fs::write(&control_gql, control_schema()).unwrap();
fs::write(&signal_gql, signal_schema()).unwrap();
fs::write(
&backend_rs,
include_str!("src/graphql/backend_query_tmpl.rs")
.replace("$schema_path$", backend_gql.to_str().unwrap()),
)
.unwrap();
fs::write(
&control_rs,
include_str!("src/graphql/control_query_tmpl.rs")
.replace("$schema_path$", control_gql.to_str().unwrap()),
)
.unwrap();
fs::write(
&signal_rs,
include_str!("src/graphql/signal_query_tmpl.rs")
.replace("$schema_path$", signal_gql.to_str().unwrap()),
)
.unwrap();
println!("cargo:rerun-if-changed=build.rs");
built::write_built_file().expect("Failed to acquire build-time information")
}