Consider using conan.io for dependency management
Conan is a promising C++ package manager which is nicely integrated with CMake. It provides dependency declaration in simple text files (conanfile.txt
) and hosting of the binaries (e.g. Boost binaries). It also provides tools for automatically packaging binaries with the help of Travis (for Linux and Mac OS) and Appveyor (for Windows / Visual Studio).
It is still a young project but I will try it. If it works as advertised I hope it will be a lot easier to switch dependency versions as it is possibly planned with Qt / Vtk. Also starting development from scratch will be a lot easier because dependencies are simply fetched as binaries.
-
Create necessary packages -
Adapt ogs -
Adapt CI -
Document
Advantages
- It works
- Easy to use
- Relatively easy to create packages
Disadvantages
- Just one specific config per build-directory, for VS release and debug configs you need also two build-dirs, conan-io/conan#114
- Packages cannot be installed depending on chosen CMake options, they are installed before CMake runs and therefore cannot contain optional dependecies, conan-io/conan#5
- Maybe this can be workaround by generating the package definition file by CMake
- OR just installing all dependencies (is really quick in general)
- OR just comment out unnecessary dependencies
- No automated clang builds on Travis yet, conan-io/conan-package-tools#13
- The project needs more momentum, hopefully it establishes itself..