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 <boost@lists.boost.org> 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). 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 <boris@codesynthesis.com> wrote:
Adam Getchell via Boost <boost@lists.boost.org> 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