This guide shows how to structure libraries correctly, manage include paths the right way, and avoid the global-state traps that make traditional CMake so painful.
You’ll also receive one short monthly email with practical C++ and CMake insights — no spam, no noise, just useful stuff.

I’m Nikolai — a C++ developer and author writing about modern build practices.
I created this guide to help developers stop fighting CMake and start using it the way it was designed to be used.
What’s inside:
- The core idea behind modern CMake
- Why global configuration breaks your project
- How to define clean, isolated targets
- Before/after examples of wrong and correct CMake
- Usage requirements (PUBLIC / PRIVATE / INTERFACE) explained simply
This guide is for
- C++ developers who want a clean, modern build setup
- Engineers maintaining or refactoring legacy CMake
- Anyone tired of hidden dependencies and unpredictable builds
Build systems don’t have to be fragile.
Start with a clean, modern CMake foundation — one target at a time.
That’s it.
A clean PDF with practical examples — plus one useful email per month to help you build better C++ software.