Add textured OBJ model rendering
This commit is contained in:
33
build.rs
Normal file
33
build.rs
Normal file
@@ -0,0 +1,33 @@
|
||||
use std::{env, fs, path::PathBuf};
|
||||
|
||||
use anyhow::Result;
|
||||
use fs_extra::{copy_items, dir::CopyOptions};
|
||||
|
||||
fn main() -> Result<()> {
|
||||
let manifest_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR")?);
|
||||
let source_dir = manifest_dir.join("res");
|
||||
let out_dir = PathBuf::from(env::var("OUT_DIR")?);
|
||||
let resource_dir = out_dir.join("res");
|
||||
|
||||
let mut copy_options = CopyOptions::new();
|
||||
copy_options.overwrite = true;
|
||||
|
||||
println!("cargo:rerun-if-changed={}", source_dir.display());
|
||||
|
||||
if resource_dir.exists() {
|
||||
fs::remove_dir_all(&resource_dir)?;
|
||||
}
|
||||
|
||||
if source_dir.exists() {
|
||||
let items = fs::read_dir(&source_dir)?
|
||||
.map(|entry| entry.map(|entry| entry.path()))
|
||||
.collect::<Result<Vec<_>, _>>()?;
|
||||
|
||||
fs::create_dir_all(&resource_dir)?;
|
||||
copy_items(&items, &resource_dir, ©_options)?;
|
||||
}
|
||||
|
||||
println!("cargo:rustc-env=RESOURCE_DIR={}", resource_dir.display());
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user