diff --git a/rr_frontend/translation/src/lib.rs b/rr_frontend/translation/src/lib.rs index f2ba35870876e90a67b5884b6bf46df8e8429161..21f652392932421a1e6504c7c4371cbc58404258 100644 --- a/rr_frontend/translation/src/lib.rs +++ b/rr_frontend/translation/src/lib.rs @@ -678,25 +678,27 @@ impl<'tcx, 'rcx> VerificationCtxt<'tcx, 'rcx> { // write the dune-project file, if required if rrconfig::generate_dune_project() { - base_dir_path.pop(); - base_dir_path.push("dune-project"); - let mut dune_project_file = - io::BufWriter::new(fs::File::create(base_dir_path.as_path()).unwrap()); + let mut dune_project_path = rrconfig::absolute_work_dir(); + dune_project_path.push("dune-project"); - let (project_name, dune_project_package) = if let Some(ref dune_package) = self.dune_package { - (dune_package.to_string(), format!("(package (name {dune_package}))\n")) - } else { - (stem.to_string(), format!("")) - }; - write!( - dune_project_file, - "\ - ; Generated by [refinedrust], do not edit.\n\ - (lang dune 3.8)\n\ - (using coq 0.8)\n\ - (name {project_name})\n{dune_project_package}", - ) - .unwrap(); + if !dune_project_path.exists() { + let mut dune_project_file = + io::BufWriter::new(fs::File::create(dune_project_path.as_path()).unwrap()); + + let (project_name, dune_project_package) = if let Some(ref dune_package) = self.dune_package { + (dune_package.to_string(), format!("(package (name {dune_package}))\n")) + } else { + (stem.to_string(), format!("")) + }; + write!( + dune_project_file, + "\ + (lang dune 3.8)\n\ + (using coq 0.8)\n\ + (name {project_name})\n{dune_project_package}", + ) + .unwrap(); + } } // write generated (subdirectory "generated")