Happy 20th Birthday CMake!

Marian Luparu


CMake is now 20! Kitware posted yesterday an interview with Bill Hoffman, the original creator for CMake and shared that August 31 was CMake’s 20th birthday

Here, in the C++ team, we are not only heavy CMake users. We also believe that CMake is a foundational piece for all C++ cross-platform developers and, as such, we strive to enable the best CMake experiences in both Visual Studio and Visual Studio Code.

A lot of the work we do in Visual Studio and Visual Studio Code wouldn’t be possible without the hard work on CMake toolability from the folks over at Kitware. So if you use these capabilities, join us in congratulating Bill and everyone in the Kitware team on this important milestone. Happy birthday CMake!

Visual Studio loves CMake

Microsoft C++ Team


Leave a comment

  • Artem Shoobovych
    Artem Shoobovych

    I just wish the information on CMake was up to date – it is very tricky to do projects right with it. Especially when it comes to anything more complex than a sample project (using 3rd party libs which are not using CMake, modular projects, cross-platform build options, etc.)

    • Avatar
      David Hunter

      To me that echo’s one of the complaints about C++. We can’t they just make it simple and fix it! I think the same anserws apply, why is C++ still dominate relative to say D or Rust, although Rust is getting bigger, https://fossbytes.com/most-popular-programming-languages/. Sure you can do a “better” CMake and people have but they still have tiny users bases.
      Anayway happy 20th, looking forward to the next 20!

    • Henrique Marks
      Henrique Marks

      I think you are using the wrong tool. CMake is primarily too build software, not to be a complete Build System, or a package manager. For full cross-platform development, look for Buildroot, if you want to work with full images. Yocto may be your choice if you want to deliver packages, instead of full system images. Linux standard distros may be your choice if you want to start from a ready built Linux system, and develop on top of that (for instance, you create your deb packages…). On Windows side, chocolatey for package management, or Build Systems like Conan and VcPkg.

      Most of those solutions use CMake, Conan indeed is a python based build system heavily using CMake.

      So, you are looking for a Build System. Do not try to write gazillions of CMakeLists.txt, one calling another, to build your whole system. This is the equivalent of writing those big Makefiles to build-it-all, or create a big sln file to build-it-all, and both are not modular and should be avoided for big projects, where modularity improves everything.