Hacker ApprovedDepartments

CMake

Ranked 3 of 17 build systems by recommenders

Widely used cross-platform build system that handles compilation, dependencies and toolchains; people cite its wide toolchain support, but its scripting language is widely criticized as awkward.

Widely used cross-platform build system that handles compilation, dependencies and toolchains; people cite its wide toolchain support, but its scripting language is widely criticized as awkward.

151 people gave an opinion

recommend it
58
criticize it
93
approval share
38%
Each figure is 2 people. RecommendsCriticizes

Recommended in 12 of 13 months

  1. November 2025: recommended
  2. December 2025: recommended
  3. January 2026: recommended
  4. February 2026: recommended
  5. March 2026: recommended
  6. April 2026: recommended
  7. May 2026: recommended
  8. June 2026: recommended
  9. July 2026: recommended
  10. August 2026: recommended
  11. September 2026: recommended
  12. October 2026: recommended
  13. November 2026: not recommended (month in progress)

Why it doesn’t carry the badge

  • 58 people recommend itNeeds 10 or more, met.
  • 0.6 recommenders for every criticNeeds 2 to 1 or better, not met.
  • Recommended in 12 of 13 monthsNeeds 4 or more, met.

The same three rules apply to every product, and the badge can’t be bought. How the badge works

What people say about it

The reasons people give, with the number of comments that give each one. Open a reason to read what they said.

Why people recommend it

Each mark is one comment

  • Works across platforms and toolchains

    “CMake does three main things: Compilation with dependency tracking, finding external dependencies, and platform-independence.”

    Comment from 11 Apr 2026 in “I built a Cargo-like build tool for C/C++”

    “just installing LLVM, CMake and Ninja is enough to get started developing on Windows”

    Comment from 15 Feb 2026 in “I Fixed Windows Native Development”

    “CMake is quite crufty, but there's toolchains for every system under the Sun”

    Comment from 5 Dec 2025 in “Why we built Lightpanda in Zig”
  • Large user base and IDE support

    “CMake has a tremendous user mass, so you do want to be able to use a CMake-based project as a dependency.”

    Comment from 10 Apr 2026 in “I built a Cargo-like build tool for C/C++”

    “CMake works so well that companies such as Jetbrains developed their C++ IDEs around it”

    Comment from 19 Aug 2026 in “The Two Factions of C++”
  • Rebuilds only what has changed

    “CMake only reruns, when CMakeLists.txt has changed. That doesn't happen a lot after the core of the project has been set up for me.”

    Comment from 3 Mar 2026 in “Making Video Games in 2025 (without an engine)”

    “Build time went from 10 minutes to 2 minutes and now we have ability just to build what has changed.”

    Comment from 11 Mar 2026 in “Practical Guide to Bare Metal C++”
  • Fixes many weird build edge cases

    “Cmake has a lot of warts, but they have also put a lot of effort into finding and fixing all those weird special cases.”

    Comment from 9 Apr 2026 in “I built a Cargo-like build tool for C/C++”

    “Cmake is starting to get all the possible weirdness right without scripts”

    Comment from 10 Apr 2026 in “I built a Cargo-like build tool for C/C++”

What people warn about

Each mark is one comment

  • Awkward, hard-to-learn scripting language

    “I love to hate cmake as much as the next guy, and it would be hard to design a worse scripting language”

    Comment from 9 Apr 2026 in “I built a Cargo-like build tool for C/C++”

    “CMake is a combination of a warthog of a specification language, and mechanisms for handling a zillion idiosyncracies and corners cases of everything.”

    Comment from 9 Apr 2026 in “I built a Cargo-like build tool for C/C++”

    “CMake as a language makes PHP look good. Whenever I have to use it, there's a whole lot of warnings and often errors, too.”

    Comment from 12 Apr 2026 in “Dcmake: A new CMake debugger UI”
  • Accumulated cruft and workarounds

    “tons of accumulated workarounds for all the different host operating systems, compiler toolchains and IDEs”

    Comment from 9 Apr 2026 in “I built a Cargo-like build tool for C/C++”

    “CMakes piles up various generations of idioms so there are multiple ways of doing it”

    Comment from 9 Apr 2026 in “I built a Cargo-like build tool for C/C++”

    “Cmake itself exists because a lot of humans haven't bothered to read the gnu make manual, and added more cruft to manage this.”

    Comment from 9 Apr 2026 in “I built a Cargo-like build tool for C/C++”
  • Slow builds and setup pain

    “Getting all of LLVM mesa linux cmake ninja glibc gcc binutils xorg KDE to work is more work than in 2005 or 2010.”

    Comment from 21 Jan 2026 in “Linux from Scratch”

    “we switched from CMake to a handrolled typescript build system and it made our builds faster and simpler”

    Comment from 27 Jul 2026 in “How is the Bun Rewrite in Rust going?”

    “cmake, npm, pip, maven, etc. all live in this realm where any invocation could become a time purgatory.”

    Comment from 12 Dec 2025 in “The Tor Project is switching to Rust”
  • Errors and failures despite passing

    “Cmake has been better but still sometimes cmake will pass and the code still doesn't build”

    Comment from 3 Aug 2026 in “Celebrating 45 Years of Kermit with the First New C-Kermit Release in 15 Years”

    “I hit an absolutely ludicrious number of errors for effectively a hello world”

    Comment from 25 Jul 2026 in “The PImpl idiom and the C++26 std:indirect type”

    “CMake as a language makes PHP look good. Whenever I have to use it, there's a whole lot of warnings and often errors, too.”

    Comment from 12 Apr 2026 in “Dcmake: A new CMake debugger UI”

Other build systems people recommend

The four most recommended other build systems, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.

CMake compared with 4 alternatives
ProductRecommendCriticizeApprovalMonthsOwnedBadge
Bazel794166%123 yrs3 owners—
GNU Make764264%12——
CMakeThis page589338%12——
Apache Maven444251%12——
Ninja build system371079%11—Approved
See all 17 build systems, ranked

What people said

40 of the 190 comments that mention it, newest first. Each links to the original comment.

“CMake works so well that companies such as Jetbrains developed their C++ IDEs around it”

RecommendsComment from 19 Aug 2026 in “The Two Factions of C++”

“cmake just worked every time when I plugged in the toolchain file”

RecommendsComment from 5 Aug 2026 in “Faster Than Ninja”

“In general, CMake is fast enough, the only slow bit on the critical path is detecting the toolchain.”

MixedComment from 5 Aug 2026 in “Faster Than Ninja”

“CMake cache variables are individually settable and come with types and docstrings.”

RecommendsComment from 5 Aug 2026 in “Faster Than Ninja”

“Cmake has been better but still sometimes cmake will pass and the code still doesn't build”

MixedComment from 3 Aug 2026 in “Celebrating 45 Years of Kermit with the First New C-Kermit Release in 15 Years”

“we switched from CMake to a handrolled typescript build system and it made our builds faster and simpler”

CriticizesComment from 27 Jul 2026 in “How is the Bun Rewrite in Rust going?”

“I hit an absolutely ludicrious number of errors for effectively a hello world”

MixedComment from 25 Jul 2026 in “The PImpl idiom and the C++26 std:indirect type”

“Naturally if you cannot be on latest compiler releases, or suffer from CMake phobia, the support isn't there.”

MixedComment from 1 Jul 2026 in “Pystd, similar-ish functionality with a fraction of the compile time”

“I recommend you start by getting acquainted with CMake and its state of modules support.”

RecommendsComment from 13 May 2026 in “C++26: Standard Library Hardening”

“instead of dealing with CMake and Autotools, I now have to deal with CMake, Autotools and Meson”

MixedComment from 14 Apr 2026 in “What is jj and why should I care?”

“CMake as a language makes PHP look good. Whenever I have to use it, there's a whole lot of warnings and often errors, too.”

CriticizesComment from 12 Apr 2026 in “Dcmake: A new CMake debugger UI”

“CMake does three main things: Compilation with dependency tracking, finding external dependencies, and platform-independence.”

RecommendsComment from 11 Apr 2026 in “I built a Cargo-like build tool for C/C++”

“CMake has a tremendous user mass, so you do want to be able to use a CMake-based project as a dependency.”

MixedComment from 10 Apr 2026 in “I built a Cargo-like build tool for C/C++”

“Cmake is starting to get all the possible weirdness right without scripts”

MixedComment from 10 Apr 2026 in “I built a Cargo-like build tool for C/C++”

“CMake is a combination of a warthog of a specification language, and mechanisms for handling a zillion idiosyncracies and corners cases of everything.”

CriticizesComment from 9 Apr 2026 in “I built a Cargo-like build tool for C/C++”

“take advantage of what CMake is good at while making the more difficult operations easier”

RecommendsComment from 9 Apr 2026 in “I built a Cargo-like build tool for C/C++”

“I love to hate cmake as much as the next guy, and it would be hard to design a worse scripting language”

MixedComment from 9 Apr 2026 in “I built a Cargo-like build tool for C/C++”

“As much of a dog as cmake is, "just use make!" does not solve many of the problems that cmake makes a go at.”

MixedComment from 9 Apr 2026 in “I built a Cargo-like build tool for C/C++”

“Cmake itself exists because a lot of humans haven't bothered to read the gnu make manual, and added more cruft to manage this.”

CriticizesComment from 9 Apr 2026 in “I built a Cargo-like build tool for C/C++”

“Cmake has a lot of warts, but they have also put a lot of effort into finding and fixing all those weird special cases.”

MixedComment from 9 Apr 2026 in “I built a Cargo-like build tool for C/C++”

“CMakes piles up various generations of idioms so there are multiple ways of doing it”

MixedComment from 9 Apr 2026 in “I built a Cargo-like build tool for C/C++”

“That's why meta-build-systems like cmake were created, not to be a better GNU Make.”

RecommendsComment from 9 Apr 2026 in “I built a Cargo-like build tool for C/C++”

“tons of accumulated workarounds for all the different host operating systems, compiler toolchains and IDEs”

MixedComment from 9 Apr 2026 in “I built a Cargo-like build tool for C/C++”

“All the main build tools (cmake, meson/ninja and GNU configure) have different benefits”

MixedComment from 30 Mar 2026 in “ninja: a small build system with a focus on speed”

“I thought I knew a lot of CMake, but file sets definitely make things a lot simpler.”

RecommendsComment from 29 Mar 2026 in “C++26 is done ISO C++ standards meeting, Trip Report”

“it took me weeks to understand what good and what bad CMake code looks like”

MixedComment from 16 Mar 2026 in “Ask HN: What is it like being in a CS major program these days?”

“Build time went from 10 minutes to 2 minutes and now we have ability just to build what has changed.”

RecommendsComment from 11 Mar 2026 in “Practical Guide to Bare Metal C++”

“CMake only reruns, when CMakeLists.txt has changed. That doesn't happen a lot after the core of the project has been set up for me.”

RecommendsComment from 3 Mar 2026 in “Making Video Games in 2025 (without an engine)”

“Both of these alternatives use a build system I can trust over randomgithubproject.exe”

RecommendsComment from 16 Feb 2026 in “I Fixed Windows Native Development”

“just installing LLVM, CMake and Ninja is enough to get started developing on Windows”

RecommendsComment from 15 Feb 2026 in “I Fixed Windows Native Development”

“We've come a long way to replace simple Makefile with autotools (incredible monstrocity), cmake, ninja etc.”

MixedComment from 7 Feb 2026 in “Software Engineering Is Back”

“To match the npm or pip model you'd go with nix or guix or cmake and you'd vendor everything”

RecommendsComment from 27 Jan 2026 in “The C-Shaped Hole in Package Management”

“Getting all of LLVM mesa linux cmake ninja glibc gcc binutils xorg KDE to work is more work than in 2005 or 2010.”

MixedComment from 21 Jan 2026 in “Linux from Scratch”

“I'd recommend that you use CMake with a CMake toolchain file targeting Winelib”

RecommendsComment from 19 Jan 2026 in “Wine 11.0”

“CMake doesn't spark joy, but it's not something you need to touch constantly.”

MixedComment from 16 Dec 2025 in “Adafruit: Arduino’s Rules Are ‘Incompatible With Open Source’”

“cmake, npm, pip, maven, etc. all live in this realm where any invocation could become a time purgatory.”

CriticizesComment from 12 Dec 2025 in “The Tor Project is switching to Rust”

“CMake is quite crufty, but there's toolchains for every system under the Sun”

MixedComment from 5 Dec 2025 in “Why we built Lightpanda in Zig”

“All these started with pure declarative DSL then incrementally created a nightmarish imperative monstrosity.”

CriticizesComment from 5 Dec 2025 in “CSS now has an if() conditional function”

“I find CMake intensely offensive, just the whole worldview of every tool demanding you learn some DSL to do basic things”

CriticizesComment from 28 Nov 2025 on Hacker News

“Even with the weird configuration language it has, it's still preferable to the horrible agglomeration of m4 macros”

MixedComment from 25 Nov 2025 in “Migrating to Bazel symbolic macros”

Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.