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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
use std::env;
use std::path::PathBuf;
use crate::r#gen::{
gen_commands_file::generate_commands_file,
gen_compile_info::generate_compile_info,
gen_completions_entries::generate_completions_file,
gen_iscc_script::generate_installer_script,
gen_mod_files::generate_collect_files,
gen_override_renderer::{generate_override_renderer, generate_override_renderers_list},
gen_renderers_file::generate_renderers_file,
gen_specific_renderer::generate_specific_renderer,
};
pub mod r#gen;
#[tokio::main]
async fn main() {
println!("cargo:rerun-if-env-changed=FORCE_BUILD");
println!("cargo:rerun-if-changed=src/cmds/arg");
println!("cargo:rerun-if-changed=src/cmds/cmd");
println!("cargo:rerun-if-changed=src/cmds/collect");
println!("cargo:rerun-if-changed=src/cmds/comp");
println!("cargo:rerun-if-changed=src/cmds/converter");
println!("cargo:rerun-if-changed=src/cmds/in");
println!("cargo:rerun-if-changed=src/cmds/out");
println!("cargo:rerun-if-changed=src/cmds/renderer");
let repo_root = std::sync::Arc::new(PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()));
let _ = tokio::join!(
tokio::spawn({
let repo_root = repo_root.clone();
async move { generate_compile_info(&repo_root).await }
}),
tokio::spawn({
let repo_root = repo_root.clone();
async move { generate_commands_file(&repo_root).await }
}),
tokio::spawn({
let repo_root = repo_root.clone();
async move { generate_renderers_file(&repo_root).await }
}),
tokio::spawn({
let repo_root = repo_root.clone();
async move { generate_completions_file(&repo_root).await }
}),
tokio::spawn({
let repo_root = repo_root.clone();
async move { generate_collect_files(&repo_root).await }
}),
tokio::spawn({
let repo_root = repo_root.clone();
async move { generate_override_renderer(&repo_root).await }
}),
tokio::spawn({
let repo_root = repo_root.clone();
async move { generate_override_renderers_list(&repo_root).await }
}),
tokio::spawn({
let repo_root = repo_root.clone();
async move { generate_specific_renderer(&repo_root).await }
}),
tokio::spawn({
async move {
if cfg!(target_os = "windows") {
// Only generate installer script on Windows
let repo_root = repo_root.clone();
generate_installer_script(&repo_root).await
}
}
})
);
}
|