diff --git a/build.rs b/build.rs index 748d9a7..502fece 100644 --- a/build.rs +++ b/build.rs @@ -1,7 +1,29 @@ +use std::{env, path::Path, process::Command}; + fn main() { - glib_build_tools::compile_resources::( - &[], - "gresources.xml", - "com.luminescent-dreams.resources-demo", - ); + let source_dirs: Vec = vec!["/build/source".to_owned()]; + let gresource = "/build/source/gresources.xml"; + let target = "com.luminescent-dreams.resources-demo"; + + let out_dir = env::var("OUT_DIR").unwrap(); + let out_dir = Path::new(&out_dir); + + let mut command = Command::new("glib-compile-resources"); + + for source_dir in source_dirs { + command.arg("--sourcedir").arg(&source_dir); + } + + let cmd = command.arg("--target").arg(out_dir.join(target)).arg(gresource); + + eprintln!("[Program ] {}", cmd.get_program().to_string_lossy().to_owned()); + for arg in cmd.get_args() { + eprintln!("[arg ] {}", arg.to_string_lossy().to_owned()); + } + eprintln!("[current dir] {:?}", cmd.get_current_dir()); + + let output = cmd.output().unwrap(); + for line in String::from_utf8(output.stdout).unwrap().lines() { + eprintln!("{}", line); + } }