I started giving it a try with Boost.DynamicBitset but I discovered another two issues: - the boost libraries do not use git tags for marking the version used in the boost release It would help if the release version of each boost library was tagged on its master branch (e.g. tag: 1.58). This can be worked around by using exact commit hashes as a reference. Finding these commits (e.g. through the modular boost superproject is extra work). - where do all these Find/FetchBoostLibrary.cmake files live? Ideally each library should have only its own, so to install a library with dependencies we need to get a specific version of the Find/FetchBoostLibrary.cmake file of each dependency. This is doable, but needs some cmake machinery. I think I'll give it another try in the next couple of days. I'm going to start with Boost.Config, Boost.Assert, and Boost.Core. And I'm going to completely ignore non-header only libraries first. If anyone is willing to help or give fast feedback please let me know.