C++ dependency management is hard, is it possible to make it easy?
There's no easy way to manage dependencies in the C++ projects.
Existing solutions rely on customizations/patches applied to 3rd party code and/or some kind of central repository to pull pre-built binaries from.
The problem is that it is extreemely hard and time consuming to patch/pre-build each ever created C++ library.
There are some successful tools which provide OS-specific way to manage 'packages':
Build system should produce binaries from source code. Dependency manager should take care about dependencies. KISS FTW.
- it should be able to pull source code from remote location
- it should be able to drive build process for
- it should be able to install multiple versions of the same library
- it should be able to provide dependencies integration for
- it should be able to deal with the dependencies of dependencies
- it should work on Windows, Linux, OS X in a uniform way
boost: git: firstname.lastname@example.org:boostorg/boost.git tag: boost-1.62.0 build: unix: - bootstrap.sh --prefix=<%= Glue.install_dir %> win: - bootstrap install: unix: - ./b2 install win: - b2 gstreamer: file: https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.10.1.tar.xz build: all: - ./configure --prefix=<%= Glue.install_dir %> - make install: all: - make install dependencies: - glib glib: # ...
glue installto install dependencies specified in
glue generate [cmake|boost|meson]to generate integration files for build system
glue vendorto copy binary dependencies to