Live data from Hacker News

C++ Package Managers: The Ultimate Roundup

moderncppdevops.com

1–10 of 15 posts

Re: C++ Package Managers: The Ultimate Roundup

#2
I have made my own tool to solve this problem:

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.

Re: C++ Package Managers: The Ultimate Roundup

#3
This is a great overview, very comprehensive.

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.

Re: C++ Package Managers: The Ultimate Roundup

#4
> Spack cons. Not as well-suited for general-purpose development

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.

Re: C++ Package Managers: The Ultimate Roundup

#8
vcpkg is well on its way to becoming the de facto standard, with support for just about every major platform out there.

But FetchContent / ExternalProject in CMake is super convenient and works really well if you just have a couple simple dependencies.

Re: C++ Package Managers: The Ultimate Roundup

#9
Conan does a very poor job of managing versions and accidental cycles in your dependency graph. I recall having issues that needed manual patching of conanfiles to bootstrap packages when no prebuilt version existed for the target and it contained itself as a transitive dependency.

Also if you use it, make sure not to rely on Conan center. Their outages can ruin your week.

Post reply on HN