Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "vcpkg"
-
I know its Microsoft and there is a lot of hate and distrust against them.
But for those willing to provide an opinion that goes beyond "0mG fCk MekRo$0ft!!" I will ask you this:
Have you heard about the vcpkg? Package manager for C++. If so what are your thoughts on it??7 -
So I am navigating the hellscape called vcpkg. It is a hellscape to me because I don't understand fuck all about how its supposed to work. It has things like manifests and keys which point to repo commits and other weird shit.
I am trying to learn how to get it to install boost.asio today. It keeps installing this old as fuck version 1.80 instead of latest 1.86. I try specifying the version in the vckpg.json file of my project. Then it starts throwing hands and saying it doesn't have port shit for other boost libraries. I try to provide versions for those and it throws more hands. I search and search to no avail. So I give up and let it install 1.80 and all its dependencies. Then its starting fucking erroring out compiling boost.coroutines. So I search on that. Nothing of substance. Just flabbergasted at this point. Does boost work at all with msvc?
I am looking through the errors and is says run "vcpkg update". This fails because I am in manifest mode. Why didn't it give me the command for manifest mode, is it stupid? Then I find the command for manifest mode: "vcpkg x-update-baseline". This updates it commit number is some random file I don't know about. Still don't know what the fuck that does. Then I run the config again on my vcpkg.json. This starts installing boost-asio 1.86. Okay, that is what I wanted in the first place.
So I let it run and do its thing. It installs everything and compiles everything. Its all ready to go. At this point I am like what the fuck is this shit. I don't really want to learn any of this shit. Yet there is someone somewhere that probably can't get enough of this. At work I will probably eventually need to learn this, along with cmake, and all its quirks. It just makes me tired to learn this just to get to a point to write one line of code. I am sure vcpkg will save me time and energy at some point. But 2-3 hours of guessing is annoying at best.
The last time I used boost on windows I just downloaded the source and built it. It was simple and then I just had to provide paths. vcpkg is nice in this respect. Especially when I upgrade the library.
I don't know what the point of this rant is. Getting tired of fighting tooling I guess. Already learning black magic trying to setup my build environment for making skse plugins. Docs are almost non-existent. I did find a discord with some cool people though. Respect to the trailblazers of this art.9 -
I am using a bunch of vcpkg based cmake projects in visual studio. I realized I don't understand how any of this works from the ground up. So I found this article:
https://learn.microsoft.com/en-us/...
This was an interesting trip getting this to work on a newer version of an auto generated cmake project in vs. It took a bit to understand how to make the vcpkg preset work with the existing generated presets for debug/release x86/x64. Then I had the additional pain of figuring out how to include only the things I actually want from boost. I kept seeing conflicting methods because cmake versions keep changing how it is done.
I am glad to say after much swearing I finally figured out the modern way of using cmake with vcpkg and vs. It is very satisfying when everything downloads, configures, and compiles. I think vcpkg will be not that bad to work with. Still don't understand manifests yet.
Right now my libraries are not version selected. I should probably do that before it decides to install the next latest version of boost or something.