diff --git a/crates/g3-computer-control/build.rs b/crates/g3-computer-control/build.rs index fed302c..d7d6f63 100644 --- a/crates/g3-computer-control/build.rs +++ b/crates/g3-computer-control/build.rs @@ -36,11 +36,20 @@ fn main() { // Copy the dylib to the output directory so it can be found at runtime let target_dir = manifest_dir.parent().unwrap().parent().unwrap().join("target"); let profile = env::var("PROFILE").unwrap_or_else(|_| "debug".to_string()); - let output_dir = target_dir.join(&profile); + + // Determine the actual target directory (could be llvm-cov-target or regular target) + let target_dir_name = env::var("CARGO_TARGET_DIR") + .unwrap_or_else(|_| target_dir.to_string_lossy().to_string()); + let actual_target_dir = PathBuf::from(&target_dir_name); + let output_dir = actual_target_dir.join(&profile); let dylib_src = lib_path.join("libVisionBridge.dylib"); let dylib_dst = output_dir.join("libVisionBridge.dylib"); + // Create output directory if it doesn't exist + std::fs::create_dir_all(&output_dir) + .expect(&format!("Failed to create output directory {}", output_dir.display())); + std::fs::copy(&dylib_src, &dylib_dst) .expect(&format!("Failed to copy dylib from {} to {}", dylib_src.display(), dylib_dst.display()));