CMake (2026-08-19 - 2026-08-20)#
This is the livelog of the course once it is being held, with topics taken from the agenda as we go.
Course Preparation, Attendee Workstation Setup#
(This information is part of the README of the course project)
Install Git#
From https://git-scm.com/install/windows, select standalone installer for Windows/x64 and invoke it.
Review “Select Components”. Maybe you want a Git desktop icon
“Default Editor”: maybe notepad++ will be the best - you decide. Note that we will use git only to clone and update; commits are not on the radar, and likely we’ll not use that editor anyway.
Clone Course Project#
From the DOS prompt, use Git to clone our course project. This will
create a subdirectory 2026-08-19--CMake of the current working
directory (mine is C:\Users\jfasch\My-Projects).
C:\Users\jfasch\My-Projects> git clone https://codeberg.org/jfasch/2026-08-19--CMake.git
Cloning into '2026-08-19--CMake'...
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (5/5), done.
Microsoft Compiler#
See if the Microsoft compiler is installed, by simply invoking
cl from the DOS prompt. If we see the usage message, all is well.
C:\Users\jfasch\My-Projects> cl
Microsoft (R) C/C++-Optimierungscompiler Version 19.50.35728 für x64
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
Syntax: cl [ Option... ] Dateiname... [ /link Linkeroption... ]
Build Project#
First, create a dedicated build directory, ideally far far away from
the source directory. For example
C:/Users/jfasch/My-Builds/2026-08-19--CMake-win32-native.
C:\Users\jfasch> mkdir C:\Users\jfasch\My-Builds\2026-08-19--CMake-win32-native
CMake’s main task: use cmake to generate a Visual Studio
project. This is default on Windows if the Microsoft compiler is
installed
C:\Users\jfasch> cmake -S C:\Users\jfasch\My-Projects\2026-08-19--CMake -B C:\Users\jfasch\My-Builds\2026-08-19--CMake-win32-native
-- Building for: Visual Studio 18 2026
-- Selecting Windows SDK version 10.0.26100.0 to target Windows 10.0.26200.
-- The C compiler identification is MSVC 19.50.35728.0
-- The CXX compiler identification is MSVC 19.50.35728.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/18/Community/VC/Tools/MSVC/14.50.35717/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/18/Community/VC/Tools/MSVC/14.50.35717/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done (4.8s)
-- Generating done (0.1s)
-- Build files have been written to: C:/Users/jfasch/My-Builds/2026-08-19--CMake-win32-native
Use CMake to build the project, invoking Microsoft’s build system under the hood. This is not CMake’s main task, but this way we get away without screenshots showing which button to press in Visual Studio.
C:\Users\jfasch\My-Projects\2026-08-19--CMake> cmake --build C:\Users\jfasch\My-Builds\2026-08-19--CMake-win32-native
MSBuild-Version 18.4.0+6e61e96ac für .NET Framework
1>Checking Build System
Building Custom Rule C:/Users/jfasch/My-Projects/2026-08-19--CMake/CMakeLists.txt
hello.cpp
hello.vcxproj -> C:\Users\jfasch\My-Builds\2026-08-19--CMake-win32-native\Debug\hello.exe
Building Custom Rule C:/Users/jfasch/My-Projects/2026-08-19--CMake/CMakeLists.txt
You might just as well open the “solution” CMake has created, and use your favorite Windows workflow; you find it in the build directory.