-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.rs
31 lines (26 loc) · 891 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
const MODULES: &[(&str, &str)] = &[
("fighter", "src/fighter.rs"),
("missile", "src/missile.rs"),
//("message", "src/message.rs"),
("radar", "src/radar.rs"),
("radar_util", "src/radar_util.rs"),
("roots", "src/roots/mod.rs"),
("track", "src/track.rs"),
//("message", "src/message.rs"),
];
fn main() {
let mut source = std::fs::read_to_string("src/lib.rs").unwrap();
for &module in MODULES {
include_module(module, &mut source);
}
std::fs::write("out.rs", source).unwrap();
}
fn include_module((mod_name, mod_path): (&str, &str), source: &mut String) {
*source = source.replacen(&format!("mod {mod_name};"), "", 1);
let mod_src = std::fs::read_to_string(mod_path).unwrap();
source.push_str("mod ");
source.push_str(mod_name);
source.push_str("{\n");
source.push_str(&mod_src);
source.push_str("}\n");
}