For what it’s worth, having tried Biicode (Conan’s predecessor), Conan, Spack, Conda, and vcpkg, vcpkg is the only package manager for which I’ve been able to consistently (i.e. since I started using it a few years ago) build combinations of {macOS, Linux, Windows } x { gcc, clang, msvc}. As my research project includes CGAL which includes Boost, Eigen, and TBB, that ends up being 100+ libraries. Manifest mode just works, and vcpkg artifacts looks promising: https://devblogs.microsoft.com/cppblog/vcpkg-artifacts/ -- Adam Getchell acgetchell@ucdavis.edu https://adamgetchell.org
Adam Getchell via Boost
For what it’s worth, having tried Biicode (Conan’s predecessor), Conan, Spack, Conda, and vcpkg, vcpkg is the only package manager for which I’ve been able to consistently (i.e. since I started using it a few years ago) build combinations of {macOS, Linux, Windows } x { gcc, clang, msvc}.
I see you haven't tried build2 (though admittedly we only have Boost for ~1 year). We currently have the following combinations building successfully (sans Boost bugs) and continuously on our CI[1]. All in all, almost 10K builds covering 2 versions of Boost. MacOS x {GCC, Clang} Linux x {GCC, Clang} Windows x {MSVC, Clang, MinGW GCC} Wasm x {Emscripten} You can see the list of all the available build configurations here[2]. Note also that the Windows x Clang combination is Clang targeting the MSVC runtime, not MinGW. And it's with the vanilla clang/clang++ driver, not the clang-cl wrapper. This can be used to highlight the biggest problem (IMO) with package managers like Conan and vcpkg: they are a hodgepodge of build systems. For example, if you try to build libbost-regex with vcpkg, it will use Boost.Build for libbost-regex. But this library depends on ICU, which uses its own home-grown build system. As a result, adding support for something like Clang targeting MSVC with vanilla drivers is essentially an insurmountable task. If interested, you can read on other implications (like faster builds) here[3]. [1] https://cppget.org/?builds=libboost-* [2] https://ci.cppget.org/?build-configs [3] https://build2.org/faq.xhtml#why-package-managers
On May 6, 2022, at 2:16 AM, Boris Kolpackov
wrote: Adam Getchell via Boost
writes: For what it’s worth, having tried Biicode (Conan’s predecessor), Conan, Spack, Conda, and vcpkg, vcpkg is the only package manager for which I’ve been able to consistently (i.e. since I started using it a few years ago) build combinations of {macOS, Linux, Windows } x { gcc, clang, msvc}.
I see you haven't tried build2 (though admittedly we only have Boost for ~1 year).
Looks promising. I’ll be happy to try it when CGAL and TBB are available. At least, I didn’t find them on cppget.org. Which is a nicely formatted site, by the way. Thanks!
participants (2)
-
Adam Getchell
-
Boris Kolpackov