Skip to content

Commit 0cb115f

Browse files
committed
feat(build-analysis): wire logger into build process
1 parent 478f117 commit 0cb115f

File tree

5 files changed

+17
-4
lines changed

5 files changed

+17
-4
lines changed

src/cargo/core/compiler/build_context/mod.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use crate::util::Rustc;
99
use crate::util::context::GlobalContext;
1010
use crate::util::errors::CargoResult;
1111
use crate::util::interning::InternedString;
12+
use crate::util::logger::BuildLogger;
1213
use std::collections::{HashMap, HashSet};
1314

1415
mod target_info;
@@ -50,6 +51,9 @@ pub struct BuildContext<'a, 'gctx> {
5051
/// The cargo context.
5152
pub gctx: &'gctx GlobalContext,
5253

54+
/// Build logger for `-Zbuild-analysis`.
55+
pub logger: Option<&'a BuildLogger>,
56+
5357
/// This contains a collection of compiler flags presets.
5458
pub profiles: Profiles,
5559

@@ -83,6 +87,7 @@ pub struct BuildContext<'a, 'gctx> {
8387
impl<'a, 'gctx> BuildContext<'a, 'gctx> {
8488
pub fn new(
8589
ws: &'a Workspace<'gctx>,
90+
logger: Option<&'a BuildLogger>,
8691
packages: PackageSet<'gctx>,
8792
build_config: &'a BuildConfig,
8893
profiles: Profiles,
@@ -102,6 +107,7 @@ impl<'a, 'gctx> BuildContext<'a, 'gctx> {
102107
Ok(BuildContext {
103108
ws,
104109
gctx: ws.gctx(),
110+
logger,
105111
packages,
106112
build_config,
107113
profiles,

src/cargo/core/compiler/job_queue/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1124,7 +1124,7 @@ impl<'gctx> DrainState<'gctx> {
11241124
}
11251125
let unlocked = self.queue.finish(unit, &artifact);
11261126
match artifact {
1127-
Artifact::All => self.timings.unit_finished(id, unlocked),
1127+
Artifact::All => self.timings.unit_finished(build_runner, id, unlocked),
11281128
Artifact::Metadata => self.timings.unit_rmeta_finished(id, unlocked),
11291129
}
11301130
Ok(())

src/cargo/core/compiler/timings.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,12 @@ impl<'gctx> Timings<'gctx> {
314314
}
315315

316316
/// Mark that a unit has finished running.
317-
pub fn unit_finished(&mut self, id: JobId, unlocked: Vec<&Unit>) {
317+
pub fn unit_finished(
318+
&mut self,
319+
_build_runner: &BuildRunner<'_, '_>,
320+
id: JobId,
321+
unlocked: Vec<&Unit>,
322+
) {
318323
if !self.enabled {
319324
return;
320325
}

src/cargo/ops/cargo_compile/mod.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ pub fn compile_ws<'a>(
173173
});
174174
}
175175

176-
let bcx = create_bcx(ws, options, &interner)?;
176+
let bcx = create_bcx(ws, options, &interner, logger.as_ref())?;
177177

178178
if options.build_config.unit_graph {
179179
unit_graph::emit_serialized_unit_graph(&bcx.roots, &bcx.unit_graph, ws.gctx())?;
@@ -232,6 +232,7 @@ pub fn create_bcx<'a, 'gctx>(
232232
ws: &'a Workspace<'gctx>,
233233
options: &'a CompileOptions,
234234
interner: &'a UnitInterner,
235+
logger: Option<&'a BuildLogger>,
235236
) -> CargoResult<BuildContext<'a, 'gctx>> {
236237
let CompileOptions {
237238
ref build_config,
@@ -586,6 +587,7 @@ where `<compatible-ver>` is the latest version supporting rustc {rustc_version}"
586587

587588
let bcx = BuildContext::new(
588589
ws,
590+
logger,
589591
pkg_set,
590592
build_config,
591593
profiles,

src/cargo/util/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ pub mod job;
5757
pub mod lints;
5858
mod lockserver;
5959
pub mod log_message;
60-
mod logger;
60+
pub mod logger;
6161
pub mod machine_message;
6262
pub mod network;
6363
mod once;

0 commit comments

Comments
 (0)