40 lines
1.2 KiB
Rust
40 lines
1.2 KiB
Rust
use std::env;
|
|
use std::fs;
|
|
use std::path::Path;
|
|
|
|
fn main() {
|
|
println!("cargo:rerun-if-changed=assets");
|
|
println!("cargo:rerun-if-changed=fonts");
|
|
|
|
// Chemin vers target/debug ou target/release
|
|
let out_dir = env::var("OUT_DIR").unwrap();
|
|
let target_dir = Path::new(&out_dir)
|
|
.ancestors()
|
|
.nth(3) // On remonte pour arriver dans target/debug ou target/release
|
|
.unwrap();
|
|
|
|
// Copie assets/
|
|
let _ = fs::remove_dir_all(target_dir.join("assets"));
|
|
fs::create_dir_all(target_dir.join("assets")).unwrap();
|
|
copy_dir("assets", target_dir.join("assets"));
|
|
|
|
// Copie fonts/
|
|
let _ = fs::remove_dir_all(target_dir.join("fonts"));
|
|
fs::create_dir_all(target_dir.join("fonts")).unwrap();
|
|
copy_dir("fonts", target_dir.join("fonts"));
|
|
}
|
|
|
|
fn copy_dir(src: impl AsRef<Path>, dst: impl AsRef<Path>) {
|
|
for entry in fs::read_dir(src).unwrap() {
|
|
let entry = entry.unwrap();
|
|
let ty = entry.file_type().unwrap();
|
|
let dst_path = dst.as_ref().join(entry.file_name());
|
|
if ty.is_dir() {
|
|
fs::create_dir_all(&dst_path).unwrap();
|
|
copy_dir(entry.path(), &dst_path);
|
|
} else {
|
|
fs::copy(entry.path(), &dst_path).unwrap();
|
|
}
|
|
}
|
|
}
|