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 -
Decided to update my vcpkg version, and ran tests for my networking tests only for it to return QUIC_STATUS_NOT_SUPPORTED/E_NOINTERFACE for loading the config. Turns out someone decided to switch the default SSL implementation from OpenSSL to Schannel on Windows and didn't enable an option to put it back.
Now it returns an error if you provide a certificate file. Luckily if you enable 0-rtt it still forces OpenSSL 🙄2 -
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.