# What is CMake? Build System or Build Tool?

**URL:** https://discourse.cmake.org/t/what-is-cmake-build-system-or-build-tool/4219
**Category:** Community
**Created:** [October 6, 2021, 2:55pm UTC](https://discourse.cmake.org/t/what-is-cmake-build-system-or-build-tool/4219 "2021-10-06T14:55:43Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Koroshodo](https://discourse.cmake.org/letter_avatar_proxy/v4/letter/k/4da419/32.png) [@Koroshodo](https://discourse.cmake.org/u/Koroshodo)
#### Post date: [October 6, 2021, 2:55pm UTC](https://discourse.cmake.org/t/what-is-cmake-build-system-or-build-tool/4219/1 "2021-10-06T14:55:44Z")

</div>

I’m a newbie when it comes to programming so building code on multiple platforms is quite foreign to me. I’m presently trying to understand the difference between a build tool and a build system.

I found one site that describes CMake as a build system. Wikipedia suggests that CMake is not a build system but a build tool. Reading Craig’s book “Professional CMake - A Practical Guide” at the start of Chapter 2 suggests that it’s a build system. Is wikipedia wrong? Sounds like it to me.

Even if someone enlightens me on this, I’m still unsure of exactly what a build tool and a build system is or what they do. Googling seems to show up the two terms used interchangeably. I’m quite confused.

Can anyone help me clear things up?

---

<div class="post-metadata">

### Author: ![fenrir](https://discourse.cmake.org/user_avatar/discourse.cmake.org/fenrir/32/734_2.png) [@fenrir](https://discourse.cmake.org/u/fenrir)
#### Post date: [October 6, 2021, 4:50pm UTC](https://discourse.cmake.org/t/what-is-cmake-build-system-or-build-tool/4219/2 "2021-10-06T16:50:15Z")

</div>

CMake is a build system generator. It generates input files for build systems (like make, ninja, etc) and IDEs (project files for XCode, Visual Studio, CodeBlocks…).

A build tool’s responsibility is turning code into binary. So to this category belong compilers, linkers, etc.

---

<div class="post-metadata">

### Author: ![buildSystemPerson](https://discourse.cmake.org/user_avatar/discourse.cmake.org/buildsystemperson/32/2851_2.png) [@buildSystemPerson](https://discourse.cmake.org/u/buildSystemPerson)
#### Post date: [October 6, 2021, 6:06pm UTC](https://discourse.cmake.org/t/what-is-cmake-build-system-or-build-tool/4219/3 "2021-10-06T18:06:01Z")

</div>

@alex actually wrote a blog about this topic:

> **[CMake IS a Build System](https://alexreinking.com/blog/cmake-is-a-build-system.html)**
>
> Personal website and blog of Alex Reinking.
