Exploring Clang Modules
summary
Explains how Clang modules really work: module maps replace textual #include by parsing headers once, emit a dot.modulemap with umbrella headers and export rules, and Xcode auto-extends modules with generated module_name-Swift.h using -omit-objc-header. Calls out a critical limitation: paths are resolved relative to the module map file, which breaks CocoaPods’ arbitrary layouts. Describes building a module map generator for CocoaPods to enable Swift static library support — it works but is fragile and requires explicit flags and careful header placement.
AI-written summary · about
chapters (6)
- 0:00Introduction
- 0:54The legacy of header files
- 3:20Understanding module maps
- 6:30Complex module features
- 13:29Swift and Objective-C integration
- 17:25Conclusion and resources
related talks
59m“There and Back Again: An Incremental C++ Modules Design"
58mKnockin' on Header's Door: An Overview of C++ Modules
32mVisibility, Reachability, Linkage – The Three Secret Spices of C++ Modules
01h 30mC++ Modules and Large-Scale Development
01h 11mA Practical Introduction to C++20's Modules
01h 10m“C++ Modules: The State of The Union"
34mPractical C++20 Modules and the future of tooling around C++ Modules
49mConverting to C++20 Modules
