For Windows, cmake and make compatibilities especially can be more involved, as gcc and such compilers do not come packaged with the OS. If one chooses, some alternatives can include MinGW or Cygwin; in this tutorial instead, one recommended method of building assignments will be through the cmake-gui: CMake-gui Download, and using Visual Studios 2017, installed with Visual C++ Support.

The following window should display upon opening CMake-gui. There are two paths that are required for cmake to configure and generate projects, the source code directory and build directory. The source directory should be the one corresponding to the git directory pulled (make sure that the source directory contains a CMakeLists.txt file!) The build folder, if not already created, can be added by you; it acts as a way of separating the binary files compiled from the source code). The build folder will also include our executable files once built, so remember where this is! Locate the corresponding folders for the project:

tutorial1

Now, press configure. This will read the CMakeLists.txt files, and configure the project for the correct compiler. You can customize the preferred compiler; depending on the computer and program files, there may be x64 alternative compilers listed as well. Here, MSVC 2017 will be used, which will generate project files for Visual Studios.

tutorial2

Press generate. The red highlights will display the optional cmake flags that are listed in the CMakeLists.txt (optional files to build), the configuration types, and CMAKE_INSTALL_PREFIX, where the default final .exe will be built. This tutorial, and projects in this class, will just use the default settings that display; no need to change anything.

tutorial3

Click open project. This will open the default IDE or some other configured environment to open your project. The project can then be built through the IDE.

tutorial4

Once the build succeeds, the .exe file should now be compiled and ready to run. For this case, it was built under the Debug configuration type, so it would be located in the build/Debug folder (remember the build folder we specified earlier?). We can see that the basic commands work!