-
CPM.cmake
📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
Another thing I forgot to mention, but the readme examplifies really well, is that if the dependency has an antisocial (poorly written) lists file, then the users are anyway required to have some knowledge about CMake to write their own commands to properly describe the dependency. I'm not sure why there has to be such a distinction between local and system wide dependencies. Prefix paths serve as a solution to this very problem. You can have dependencies installed to a project local prefix, add that prefix to your CMAKE_PREFIX_PATH and then CMake will do the right thing if you use find_package().
vcpkg uses CMake toolchain files to work its magic, which further avoids polluting your CMakeLists.txt, but also makes cross-compiling harder if that's something you need to do. It also doesn't (yet, they're working on it) have a way of specifying all deps in one go to make life easier for new contributors.
I recently contributed to https://github.com/MoAlyousef/cmkr and made it self-hosting. This means that if you run cmake it will compile cmkr and generate CMakeLists.txt from the toml.
You can try https://gitlab.com/rilis/hell/hell. It’s not very popular at all, but I have seen it work at scale and it allows you to easily cache dependencies for CI.