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

http://CppCon.org — Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://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: http://www.BashFilms.com Work at Hudson River Trading (HRT): https://tinyurl.com/safxfctf --- Videos Filmed & Edited by Bash Films: http://www.BashFilms.com

CppCon 2017: Chandler Carruth “Going Nowhere Faster”
▶︎

CppCon 2017: Chandler Carruth “Going Nowhere Faster”

Clean CMake for C++ (library) developers - Kerstin Keller - Meeting C++ 2024
▶︎

Clean CMake for C++ (library) developers - Kerstin Keller - Meeting C++ 2024

CppCon 2017: David Sankel “So, you inherited a large code base...”
▶︎

CppCon 2017: David Sankel “So, you inherited a large code base...”

How to start a modern C++ project? - Mikhail Svetkin -  NDC TechTown 2023
▶︎

How to start a modern C++ project? - Mikhail Svetkin - NDC TechTown 2023

CMake 4 0: What You Need to Know
▶︎

CMake 4 0: What You Need to Know

John Mearsheimer & Sergey Karaganov: Atomschlag auf Europa zur Wiederherstellung der Abschreckung
▶︎

John Mearsheimer & Sergey Karaganov: Atomschlag auf Europa zur Wiederherstellung der Abschreckung

CppCon 2017: Carl Cook “When a Microsecond Is an Eternity: High Performance Trading Systems in C++”
▶︎

CppCon 2017: Carl Cook “When a Microsecond Is an Eternity: High Performance Trading Systems in C++”

CppCon 2017: Fedor Pikus “C++ atomics, from basic to advanced.  What do they really do?”
▶︎

CppCon 2017: Fedor Pikus “C++ atomics, from basic to advanced. What do they really do?”

Back to Basics: C++ API Design - Jason Turner - CppCon 2022
▶︎

Back to Basics: C++ API Design - Jason Turner - CppCon 2022

Modern Architecture 101 for New Engineers & Forgetful Experts - Jerry Nixon - NDC Copenhagen 2025
▶︎

Modern Architecture 101 for New Engineers & Forgetful Experts - Jerry Nixon - NDC Copenhagen 2025

CMake: How to Build and Package C/C++ Projects
▶︎

CMake: How to Build and Package C/C++ Projects

The AI Take Over Has Completely Backfired and I Can't Be Happier
▶︎

The AI Take Over Has Completely Backfired and I Can't Be Happier

How I Structure Cross-Platform C++ Projects with CMake
▶︎

How I Structure Cross-Platform C++ Projects with CMake

CppCon 2017: Vinnie Falco “Make Classes Great Again! (Using Concepts for Customization Points)”
▶︎

CppCon 2017: Vinnie Falco “Make Classes Great Again! (Using Concepts for Customization Points)”

ECS and Data Oriented Design - Mathieu Ropert - code::dive 2023
▶︎

ECS and Data Oriented Design - Mathieu Ropert - code::dive 2023

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup
▶︎

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup

HOLY ROSARY TODAY THURSDAY, JUNE 11, 2026 ST. JUDE THADDEUS & LUMINOUS MYSTERIES | DAILY HOLY ROSARY
▶︎

HOLY ROSARY TODAY THURSDAY, JUNE 11, 2026 ST. JUDE THADDEUS & LUMINOUS MYSTERIES | DAILY HOLY ROSARY

CMake and Conan: past, present and future - Diego Rodriguez-Losada - Meeting C++ 2023
▶︎

CMake and Conan: past, present and future - Diego Rodriguez-Losada - Meeting C++ 2023

Everything you need to know about installing and reusing CMake projects
▶︎

Everything you need to know about installing and reusing CMake projects

Andrew Kelley: A Practical Guide to Applying Data Oriented Design (DoD)
▶︎

Andrew Kelley: A Practical Guide to Applying Data Oriented Design (DoD)