Skip to content

Commit 0740e62

Browse files
WIP: Enable double output
Signed-off-by: Tomas Fabrizio Orsi <[email protected]>
1 parent 8ba4a80 commit 0740e62

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

midenc-compile/src/compiler.rs

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -461,19 +461,34 @@ impl Compiler {
461461
log::trace!(target: "driver", "current working directory = {}", cwd.display());
462462

463463
// Determine if a specific output file has been requested
464-
let output_file = match self.output_file {
465-
Some(path) => Some(OutputFile::Real(path)),
466-
None if self.stdout => Some(OutputFile::Stdout),
467-
None => None,
464+
std::dbg!(&self.stdout);
465+
std::dbg!(&self.output_file);
466+
let output_files = match (self.output_file, self.stdout) {
467+
(Some(path), false) => Some(vec![OutputFile::Real(path)]),
468+
(None, true) => Some(vec![OutputFile::Stdout]),
469+
(Some(path), true) => Some(vec![OutputFile::Real(path), OutputFile::Stdout]),
470+
_ => None,
468471
};
469472

470473
// Initialize output types
471474
let mut output_types = OutputTypes::new(self.output_types).unwrap_or_else(|err| err.exit());
472475
if output_types.is_empty() {
473-
output_types.insert(OutputType::Masp, output_file.clone());
476+
if let Some(ref output_file) = output_files {
477+
for file in output_file {
478+
output_types.insert(OutputType::Masp, Some(file.clone()));
479+
}
480+
} else {
481+
output_types.insert(OutputType::Masp, None);
482+
}
474483
} else if output_file.is_some() && output_types.get(&OutputType::Masp).is_some() {
475484
// The -o flag overrides --emit
476-
output_types.insert(OutputType::Masp, output_file.clone());
485+
if let Some(ref output_file) = output_files {
486+
for file in output_file {
487+
output_types.insert(OutputType::Masp, Some(file.clone()));
488+
}
489+
} else {
490+
output_types.insert(OutputType::Masp, None);
491+
}
477492
}
478493

479494
// Convert --exe or --lib to project type

0 commit comments

Comments
 (0)