Using CMake on Windows

CMake on Windows is installed via the cmake*-win64-x64.msi graphical installer. Do not use sudo or Run As Administrator for cmake in general.

We use the Ninja build system with CMake by setting environment variable CMAKE_GENERATOR to Ninja.

Compile programs using CMake

Navigate to the directory containing the file CMakeLists.txt using the Windows Terminal / Command Prompt.

  1. configure the build. This is normally run only once unless making major project changes.
cmake -B build
  1. compile the program. This is the command run each time you make a change to the project code.
cmake --build build
  1. Optionally, install the program with
cmake --build build --target install

Generator selection

On Windows, CMake defaults to Visual Studio and Nmake–the CMAKE_GENERATOR environment variable suggested above overrides CMake defaults. CMAKE_GENERATOR can also be overridden like:

cmake -G "Visual Studio 16 2019"

sh.exe error with cmake

The nuisance error from cmake about sh.exe being on the Path. This error also happens with CMake Windows builds on Azure Pipelines and GitHub Actions.

sh.exe was found in your PATH, here: C:/Program Files/Git/user/bin/sh.exe For MinGW make to work correctly sh.exe must NOT be in your path. Run cmake from a shill that does not have sh.exe in your PATH. If you want to use a UNIX shell, then use MSYS Makefile

Eliminate this message by adding -DCMAKE_SH="CMAKE_SH-NOTFOUND" to the cmake command, like:

cmake -DCMAKE_SH="CMAKE_SH-NOTFOUND"

Notes