Deep CMake for Library Authors
summary
Shows how to make shared libraries robust across platforms using concrete CMake features and commands: set GCC/Clang flags -fvisibility=hidden and -fvisibility-inlines-hidden and generate per-target headers with generate_export_header to control symbol exports; use target properties VERSION and SOVERSION vs VERSION to get correct sonames; write a package version file with write_basic_package_version_file and COMPATIBILITY SameMajorVersion; install with GNUInstallDirs, componentized installs, and set CMAKE_INSTALL_RPATH=$ORIGIN so runtime linkage survives packaging.
AI-written summary · about
chapters (7)
- 0:00Introduction
- 2:38Controlling API visibility
- 12:33Library versioning strategy
- 22:29Consuming libraries
- 26:32Packaging and installation
- 38:40Solving RPATH issues
- 53:18Q&A session
related talks
01h 01mClean CMake for C++ (library) developers
55mModern CMake for modular design
01h 01mGit, CMake, Conan - How to ship and reuse our C++ projects
37mCross-Building Strategies in the Age of C++ Package Managers
01h 00mThe Power and Pain of Hidden Symbols in C++ Programming
01h 02mC++ Shared Libraries and Where To Find Them
01h 29mLibraries: A First Step Toward Standard C++ Dependency Management
01h 17mThe Importance of the C++ Build System Target Model
