Skip to content
0:00 / 0:00

#cmake#c++#modulardesign

CppCon 2017: Mathieu Ropert “Using Modern CMake Patterns to Enforce a Good Modular Design”

CppCon

189K subscribers • 122 videos on Hallway • Conference channel

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • A classic. People kept recommending it from 2018 to 2025.
  • Presented by Mathieu Ropert, software engineer
  • Linked in the descriptionCppCon/CppCon2017

Intermediate. Assumes working knowledge.

103K views9 years ago2 recommendations

Systems programmingSoftware designC++Build systems and packagingDesign patterns

Mathieu Ropert demonstrates how to use modern CMake practices to enforce modular design and manage dependencies in C++ projects.

CppCon.org — Presentation Slides, PDFs, Source Code and other presenter materials are available at: github.com/CppCon/CppCon2017 — CMake is the build system chosen by most open-source C++ projects. While it is fully capable of helping you enforce a good modular design, those features are usually not well known or understood. In this talk I will present modern CMake practices that will simplify your project build and help you design better C++ components with clear dependencies and build interfaces (the sum of compile flags required to use a given library). We will first do a quick recap of the theory behind modular design, most of it coming from John Lakos' work on Large Scale C++ Software Development. Then we will see a few of the legacy CMake patterns that can be found in a lot of open source projects and explain their shortcomings. We will learn how to create a clean C++ library using modern CMake practices and depend on it in others modules. Finally, we will explore the options available to export the build interfaces for use by external projects. In this last part a few external tools will be discussed such as pkg-config and Conan. — Mathieu Ropert: Senior Developer, Murex Mathieu is a Senior Developer at Murex where he works as a C++ expert and animates internal workshops & events. A long term open-source enthusiast, he tries to make C++ more portable across platforms. He is also co-host of the Paris C++ Meetup. — Videos Filmed & Edited by Bash Films: BashFilms.com Work at Hudson River Trading (HRT): tinyurl.com/safxfctf --- Videos Filmed & Edited by Bash Films: BashFilms.com

Why it's here

2 people recommend this

What people say. Recommended as one of the best talks on using modern CMake to structure C++ projects cleanly.

u/skeetoin r/C_Programming • Recommends

On “Why is there no C conference?”

Every year you can think of a subset of CppCon as being like a C conference. There are a bunch of presentations that are entirely or mostly relevant to C, and not just in a broader sense of being relevant to *any* language. I plucked out a bunch from CppCon 2017 for you. These are *roughly* ordered from best to worst: * [Matt Godbolt “What Has My Compiler Done for Me Lately? Unbolting the Compiler's Lid”] * Chandler Carruth “Going Nowhere Faster” * James McNellis “Everything You Ever Wanted to Know about DLLs” * John Regehr “Undefined Behavior in 2017 (part 1 of 2)” * John Regehr “Undefined Behavior in 2017 (part 2 of 2)” * Piotr Padlewski “Undefined Behaviour is awesome!” * [Tob…

u/NYXIC0Nin r/gameenginedevs • Recommends

On “Adding bgfx to game engine”

…odern CMake tutorials. Afterwards actually read through the documentation you can find in the libraries you use like glfw, sdl3, imgui, etc. since they are mostly extremely detailed and well written. The Cherno is pretty fine, I know that there are better compiler videos out there but I cant remember them on the spot How the C++ Compiler Works: [video How the C++ Linker Works: [video Then watch this about how to write modern CMake projects CppCon 2017: Mathieu Ropert “Using Modern CMake Patterns to Enforce a Good Modular Design”: [video The following gist also has most stuff in writing: https://gist.github.com/mbinna/c61dbb39bca0e4fb7d1f73b0d66a4fd1 Understanding the basics like…