@@ -690,7 +690,7 @@ auto Scheduler::execute_parallel(
690690 auto finished_count = std::size_t { 0 };
691691 auto failed = false ;
692692
693- // Pre-compute source/output roots for execute_job_pre/post
693+ // Pre-compute source/output roots for job preparation
694694 auto source_root_sv = pool.get (impl_->options .source_root );
695695 auto output_root_sv = pool.get (impl_->options .output_root );
696696 auto output_root_prefix = pool.get (pup::path::relative (output_root_sv, source_root_sv));
@@ -1186,43 +1186,7 @@ auto Scheduler::build_targets(
11861186 Vec<NodeId> const & target_ids
11871187) -> Result<BuildStats>
11881188{
1189- auto start_time = pup::SteadyClock::time_point { pup::SteadyClock::now () };
1190- impl_->cancelled = false ;
1191- impl_->stats = BuildStats {};
1192-
1193- // Collect all commands needed to build these targets via reverse traversal
1194- auto required_cmds = collect_required_commands (graph, target_ids);
1195-
1196- // Build all jobs, then filter to required commands
1197- auto all_jobs = build_job_list (graph);
1198- if (!all_jobs) {
1199- return pup::unexpected<Error>(all_jobs.error ());
1200- }
1201-
1202- auto jobs = filter_jobs (*all_jobs, required_cmds);
1203- impl_->stats .total_jobs = jobs.size ();
1204- impl_->stats .skipped_jobs = all_jobs->size () - jobs.size ();
1205-
1206- if (jobs.empty ()) {
1207- auto end_time = pup::SteadyClock::time_point { pup::SteadyClock::now () };
1208- impl_->stats .total_time = std::chrono::duration_cast<std::chrono::milliseconds>(
1209- end_time - start_time
1210- );
1211- return impl_->stats ;
1212- }
1213-
1214- auto exec_result = execute_parallel (jobs, graph);
1215-
1216- auto end_time = pup::SteadyClock::time_point { pup::SteadyClock::now () };
1217- impl_->stats .total_time = std::chrono::duration_cast<std::chrono::milliseconds>(
1218- end_time - start_time
1219- );
1220-
1221- if (!exec_result && !impl_->options .keep_going ) {
1222- return pup::unexpected<Error>(exec_result.error ());
1223- }
1224-
1225- return impl_->stats ;
1189+ return build_subset (graph, collect_required_commands (graph, target_ids));
12261190}
12271191
12281192auto Scheduler::filter_jobs (
0 commit comments