# CMake

58 Hacker News commenters recommended CMake and 93 criticized it, November 2025 to November 2026. It was recommended in 12 of 13 months.

**Verdict:** 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.

## Why people recommend it

- Works across platforms and toolchains (4 comments): "CMake does three main things: Compilation with dependency tracking, finding external dependencies, and platform-independence." ([source](https://news.ycombinator.com/item?id=47730876)) "just installing LLVM, CMake and Ninja is enough to get started developing on Windows" ([source](https://news.ycombinator.com/item?id=47027755)) "CMake is quite crufty, but there's toolchains for every system under the Sun" ([source](https://news.ycombinator.com/item?id=46168282))
- Large user base and IDE support (2 comments): "CMake has a tremendous user mass, so you do want to be able to use a CMake-based project as a dependency." ([source](https://news.ycombinator.com/item?id=47722112)) "CMake works so well that companies such as Jetbrains developed their C++ IDEs around it" ([source](https://news.ycombinator.com/item?id=49360673))
- Rebuilds only what has changed (2 comments): "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." ([source](https://news.ycombinator.com/item?id=47231124)) "Build time went from 10 minutes to 2 minutes and now we have ability just to build what has changed." ([source](https://news.ycombinator.com/item?id=47333156))
- Fixes many weird build edge cases (2 comments): "Cmake has a lot of warts, but they have also put a lot of effort into finding and fixing all those weird special cases." ([source](https://news.ycombinator.com/item?id=47706332)) "Cmake is starting to get all the possible weirdness right without scripts" ([source](https://news.ycombinator.com/item?id=47713933))

## What people warn about

- Awkward, hard-to-learn scripting language (6 comments): "I love to hate cmake as much as the next guy, and it would be hard to design a worse scripting language" ([source](https://news.ycombinator.com/item?id=47707884)) "CMake is a combination of a warthog of a specification language, and mechanisms for handling a zillion idiosyncracies and corners cases of everything." ([source](https://news.ycombinator.com/item?id=47708286)) "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." ([source](https://news.ycombinator.com/item?id=47736421))
- Accumulated cruft and workarounds (3 comments): "tons of accumulated workarounds for all the different host operating systems, compiler toolchains and IDEs" ([source](https://news.ycombinator.com/item?id=47706070)) "CMakes piles up various generations of idioms so there are multiple ways of doing it" ([source](https://news.ycombinator.com/item?id=47706235)) "Cmake itself exists because a lot of humans haven't bothered to read the gnu make manual, and added more cruft to manage this." ([source](https://news.ycombinator.com/item?id=47706529))
- Slow builds and setup pain (3 comments): "Getting all of LLVM mesa linux cmake ninja glibc gcc binutils xorg KDE to work is more work than in 2005 or 2010." ([source](https://news.ycombinator.com/item?id=46711673)) "we switched from CMake to a handrolled typescript build system and it made our builds faster and simpler" ([source](https://news.ycombinator.com/item?id=49075774)) "cmake, npm, pip, maven, etc. all live in this realm where any invocation could become a time purgatory." ([source](https://news.ycombinator.com/item?id=46246983))
- Errors and failures despite passing (3 comments): "Cmake has been better but still sometimes cmake will pass and the code still doesn't build" ([source](https://news.ycombinator.com/item?id=49160790)) "I hit an absolutely ludicrious number of errors for effectively a hello world" ([source](https://news.ycombinator.com/item?id=49051611)) "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." ([source](https://news.ycombinator.com/item?id=47736421))

## Alternatives hackers recommend

- [Bazel](https://hackerapproved.com/p/bazel.md): 79 recommend
- [GNU Make](https://hackerapproved.com/p/gnu-make.md): 76 recommend
- [Apache Maven](https://hackerapproved.com/p/maven.md): 44 recommend
- [Ninja build system](https://hackerapproved.com/p/ninja.md): 37 recommend
- [Gradle](https://hackerapproved.com/p/gradle.md): 26 recommend

## Cite as

Hacker Approved, "CMake", https://hackerapproved.com/p/cmake/ (counts from 1,795,640 Hacker News comments, November 2025 to November 2026).
