How to start a modern C++ project
summary
Claims that a modern C++ project can be reproducible if each decision is explicit: uses CMake with presets+Ninja to unify compiler flags, vcpkg (or Conan) for dependencies, fmt as fallback for std::print, and GitHub Actions to build GCC/Clang/MSVC on Linux/Mac/Windows. The demo builds and packages via CPack and vcpkg on Linux but a trivial include-space bug breaks Windows, so CI running ~40 cross-platform checks catches real breakage. Tooling: clang-format, clang-tidy, cppcheck, pre-commit, and IDEs like CLion/Visual Studio.
AI-written summary · about
chapters (21)
- 0:00Introduction
- 1:27My journey
- 2:48Differences
- 4:21Learnings
- 5:08Motivation
- 6:19Creating a modern C project
- 7:44Is it a modern C project
- 10:12FMT Library
- 13:03What did we learn
- 14:37Build Tool
- 20:00Cake Presets
- 26:34Cake Naming
- 27:42Project Structure
- 29:59Cake Setup
- 34:46Version Control
- 37:54Package Manager
- 39:31Integration with Cake
- 41:58CI
- 51:42Writing code
- 54:31Cine
- 57:22Conclusion
related talks
46mBuilding and Packaging Modern C++
50mModern DevOps in C and C++
54mCMake for the Impatient
01h 11mThe State of Package Management in C++
37mCross-Building Strategies in the Age of C++ Package Managers
01h 01m10 Problems Large Companies Have Managing C++ Dependencies and How to Solve Them
01h 01mGit, CMake, Conan - How to ship and reuse our C++ projects
58mLevel Up Your Debugging Workflow with CMake Presets, Disassembly View, & GitHub Actions
