$ cmake-clinic
Your build is broken. Not your code - your BUILD. The compiler speaks, the linker speaks, the loader speaks, and none of them tell you what you actually did wrong.
CMake Clinic is a set of diagnosis labs. Each one hands you a small,
realistically broken CMake project - the kind of breakage that eats an
afternoon - and a verify.sh that goes green only when you have found
and fixed the root cause. No videos. No slides. You fix real builds.
# the labs (free)
| Lab | Incident | Failure speaker |
|---|---|---|
| 01 | The library that links but doesn't propagate | compiler |
| 02 | It works in the build tree. It doesn't work installed. | OS loader |
| 03 | Everything is linked. The linker disagrees. | linker |
Each lab ships with a scenario README, a three-rung hint ladder (the top rung never gives it away), and a solution post-mortem that teaches the general diagnosis method, not just the fix.
# use a lab
cd lab-01-transitive-link-interface
./verify.sh # watch it fail - that failure IS the lab
# ... investigate, fix ...
./verify.sh # PASS when the root cause is fixed
Requirements: Linux, CMake 3.16+, a C++17 compiler toolchain, bash, and Make or Ninja. No external libraries to install. The labs run offline once the toolchain is installed; no telemetry.
# download
The three labs, complete: broken projects, verifiers, hint ladders, solution post-mortems. MIT licensed.
# who made this
CMake Clinic offers hands-on practice diagnosing broken builds. The focus is the labs and the methods they teach.