Modern CMake Modules
summary
Bloomberg describes using dozens of single-purpose CMake modules to keep tens of thousands of CMakeLists.txt simple and declarative and reports surprising scale: about 10,000 projects adopting these modules. The talk shows how modules declare imported targets, handle tricky cases like cyclic prebuilt libraries, and bake code generation into a C++ project so builds remain transparent. It gives concrete module APIs, defensive argument checks, install layout and test workflows, and when not to write a module.
AI-written summary · about
chapters (26)
- 0:00Start
- 1:37Why Cmake Modules
- 4:49Coding with Cmake
- 7:47What Can I Do with the Cmake Module
- 8:08Bi-Directional Build Metadata Support
- 9:23Code Generation
- 10:39Importing Libraries
- 11:30Design Principles
- 12:09Overview
- 15:58Avoid Version Control Operations
- 18:17Cmake and the Configure Build Test Install Workflow
- 19:53Be Careful about Requiring Special Build Targets
- 24:02Config Packages
- 25:31Example Problem
- 26:30Git Ignore
- 29:47Defensive Argument Parsing
- 30:42Defensive Argument Checking
- 32:43Essential for Cmake Modules
- 35:09Test Fixtures
- 36:01Verbosity Settings
- 36:46Installing a Cmake Module
- 40:27Enable Testing
- 41:49Environment Variables
- 45:32Integration Workflow
- 47:48Why Do You Use Config Modules Instead of Cmake Modules in the Cmake Module Path
- 51:16Cache Variable
related talks
55mModern CMake for modular design
01h 09mC++ Modules: Getting Started Today
01h 04mC++ Modules - Getting started today
01h 01mC++ Modules and Large-Scale Development (Part 1)
01h 00mSo, you want to use C++ Modules ... cross-platform?
01h 01mClean CMake for C++ (library) developers
01h 01mimport CMake; // Mastering C++ Modules
01h 00m“Deploying C++ modules to 100s of millions of lines of code"
