Also if you use it, make sure not to rely on Conan center. Their outages can ruin your week.
https://github.com/franko/lhelper
It is currently used by nobody except me but it serves me well.
Its strong points are:
- it works on macOS, Linux and Windows - it is possible to choose the options you want to enable for each package - compiles packages using your own compiler toolchain - create static libraries by default but you can choose a shared library.
I personally have a system based on Guix, which is like Nix.
One important note is that doing LTO with such a setup is tricky (and I haven’t attempted it yet).
It is possible to transform existing packages to use your preferred C++ toolchain using —-with-c-toolchain, which avoids the ABI incompatibility trap, but I haven’t figured out how to create LTO-enabled static libs from system packages yet.
But FetchContent / ExternalProject in CMake is super convenient and works really well if you just have a couple simple dependencies.
We migrated netpanzer from Scons to Meson - that was a lot of work (which I didn't do), but it actually integrates with CLion now, builds on win/Linux easily, and builds fast with Ninja.
Scons wasn't that bad, though, I just feel like the build script being turing complete was a pain.
Also Meson doesn't want to just output a binary in your source root. It insists to put it in a build dir, unlike scons.
While I would not use Spack (or any package manager) to drive the usual hack-build-test development loop, Spack does provide at least two mechanisms to support that kind of general-purpose development activity: "environments" and "views".
Given the list of build systems includes SCons, I'd expect to see waf (waf.io) here.
Regarding vcpkg, this hasn't been true for a while.
Downloading the dev version of libraries is ancient history.