summary refs log tree commit diff
path: root/build.rs
diff options
context:
space:
mode:
Diffstat (limited to 'build.rs')
-rw-r--r--build.rs32
1 files changed, 31 insertions, 1 deletions
diff --git a/build.rs b/build.rs
index b4ffa72..7399346 100644
--- a/build.rs
+++ b/build.rs
@@ -10,7 +10,16 @@ fn main() {
   }
 }
 
-fn process_all () -> std::io::Result<()> {
+
+fn process_all() -> std::io::Result<()> {
+  process_shaders()?;
+  process_textures()?;
+
+  Ok(())
+}
+
+
+fn process_shaders() -> std::io::Result<()> {
   let out_dir = env::var_os("OUT_DIR").unwrap();
 
   for input in fs::read_dir("shaders")? {
@@ -51,3 +60,24 @@ fn process_all () -> std::io::Result<()> {
   Ok(())
 }
 
+
+fn process_textures() -> std::io::Result<()> {
+  for input in fs::read_dir("textures")? {
+    let input_path = input?.path();
+    if !input_path.is_file() {
+      continue;
+    }
+
+    if let Some(Some(filename)) = input_path.file_name()
+                                            .map(|name| name.to_str())
+       && filename.get(.. 1) == Some(".")
+    {
+      continue;
+    }
+
+    println!("cargo::rerun-if-changed={}", input_path.display());
+  }
+
+  Ok(())
+}
+