diff --git a/src/cargo/ops/cargo_compile/mod.rs b/src/cargo/ops/cargo_compile/mod.rs index f0540891a8b..64e81fdf3a4 100644 --- a/src/cargo/ops/cargo_compile/mod.rs +++ b/src/cargo/ops/cargo_compile/mod.rs @@ -168,6 +168,9 @@ pub fn compile_ws<'a>( .ok() .map(|x| x.get() as u64); logger.log(LogMessage::BuildStarted { + command: std::env::args_os() + .map(|arg| arg.to_string_lossy().into_owned()) + .collect(), cwd: ws.gctx().cwd().to_path_buf(), host: rustc.host.to_string(), jobs: options.build_config.jobs, diff --git a/src/cargo/ops/cargo_report/timings.rs b/src/cargo/ops/cargo_report/timings.rs index e8f4669d0de..60832d5c5c1 100644 --- a/src/cargo/ops/cargo_report/timings.rs +++ b/src/cargo/ops/cargo_report/timings.rs @@ -159,6 +159,7 @@ where for msg in log { match msg { LogMessage::BuildStarted { + command: _, cwd: _, host, jobs, diff --git a/src/cargo/util/log_message.rs b/src/cargo/util/log_message.rs index 9a7091250c2..34b1bbc8a79 100644 --- a/src/cargo/util/log_message.rs +++ b/src/cargo/util/log_message.rs @@ -21,6 +21,8 @@ use crate::core::compiler::fingerprint::DirtyReason; pub enum LogMessage { /// Emitted when a build starts. BuildStarted { + /// The command-line arguments Cargo was invoked with. + command: Vec, /// Current working directory. cwd: PathBuf, /// Host triple. diff --git a/tests/testsuite/build_analysis.rs b/tests/testsuite/build_analysis.rs index 1b5fa064d82..458461bf726 100644 --- a/tests/testsuite/build_analysis.rs +++ b/tests/testsuite/build_analysis.rs @@ -77,6 +77,7 @@ fn log_msg_build_started() { str![[r#" [ { + "command": "{...}", "cwd": "[ROOT]/foo", "host": "[HOST_TARGET]", "jobs": "{...}",