perf: build external cmake deps in parallel #21
No reviewers
Labels
No labels
bug
claude:done
claude:failed
claude:in-progress
claude:ready
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Catcrafts/Crafter.Build!21
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "claude/issue-20"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
External cmake dependencies (DPP, msquic, glslang, …) were built single-threaded:
BuildCMakeinvokedcmake --build <dir>with no--parallel, so the default Unix Makefiles generator compiled one translation unit at a time, leaving all but one core idle. On a multi-core host this made every cold dep build ~N× slower than necessary, and long dep builds (DPP is ~178 .cpp at -O3) looked like hangs to anything watching the build.Fix
Pass an explicit
--parallel Ntocmake --buildinBuildCMake, usingstd::thread::hardware_concurrency(). An explicit count is used deliberately — a bare--parallelmaps to an unboundedmake -j(fork bomb) on the Makefiles generator.Testing
crafter-buildbuilds clean (rebuilt the glslang external dep through the modified path).crafter-build test— all 12 tests pass.Resolves #20