vcpkg is a package manager, created and maintained by Microsoft and usable on Windows, Linux and MacOS.
https://vcpkg.io/en/index.html
It is especially useful for Windows and Visual Studio since the managed library packages can be integrated into VS so there is no need to add header/lib directories to use the packages.
I currently have 624 packages, most of them are the boost libraries as individual modules. 3 different versions of the libraries so I can have x64, x64-static and x86 compatible setups.
vcpkg makes libraries with dependencies easy to maintain, using Git. Once vcpkg is installed an update is:
1. Start a Command Prompt and navigate to the vcpkg directory.
2. 'git pull' retrieves any new updates.
3. 'vcpkg update' shows what libraries have updates, at least what updates have been added to the vcpkg database.
D:\Programming\vcpkg>vcpkg update
Using local portfile versions. To update the local portfiles, use `git pull`.
The following packages differ from their port versions:
egl-registry:x64-windows 2021-11-23 -> 2021-11-23#1
sdl2:x64-windows 2.24.0 -> 2.24.1
vcpkg-cmake:x64-windows 2022-09-13 -> 2022-09-26
vcpkg-cmake-get-vars:x64-windows 2022-05-10#1 -> 2022-09-04 |
4. to update the installed libraries, including ones that are inter-dependent use the upgrade command.
vcpkg upgrade --no-dry-run >>install.txt |
(I pipe the command prompt's output to a text file, appending the output to the end of the file so I have continual documentation of what I've upgraded.)
In this upgrade instance there were 4 packages that had updates. vcpkg upgraded over 100 packages because of dependencies.
I started the upgrade and let vcpkg do its magic.
Total elapsed time: 3.648 h
RESULTS
(elided for space, there were a LOT of entries)
SUMMARY FOR x64-windows
SUCCEEDED: 109
REMOVED: 109
SUMMARY FOR x64-windows-static
SUCCEEDED: 104
REMOVED: 104
SUMMARY FOR x86-windows
SUCCEEDED: 107
REMOVED: 107 |
Yes, over 3 1/2 hours, mostly because the Boost libraries had to be updated as well, but I didn't have to worry that any dependent library wasn't properly maintained. No manual updates worries or hassles.
When the updating is done I then create a list of my installed libraries.
While composing this post I did another check for library updates and vcpkg had more. A single library, python 3, that is currently doing 24 upgrades to itself and other dependent libraries,
8 12 total libraries, 3 different versions. x64, x64-static and x86.