vcpkg 2023.04.15 Release: vcpkg ships in Visual Studio, Xbox triplets, GitHub Actions Cache Support, and More…
The 2023.04.15 release of the vcpkg package manager is available. This blog post summarizes changes from February 25th, 2023 to April 15th, 2023 for the Microsoft/vcpkg, Microsoft/vcpkg-tool, and Microsoft/vcpkg-docs GitHub repos.
Some stats for this period:
- 39 new ports were added to the open-source registry. If you are unfamiliar with the term ‘port’, they are packages that are built from source and are typically C/C++ libraries.
- 957 updates were made to existing ports. As always, we validate each change to a port by building all other ports that depend on or are depended by the library that is being updated for our nine main triplets.
- There are now 2,190 total libraries available in the vcpkg public registry.
- 125 contributors submitted PRs, issues, or participated in discussions in the repo.
- The main vcpkg repo has over 5,300 forks and 18,400 stars on GitHub.
vcpkg now included with Visual Studio IDE
As of Visual Studio 2022 (version 17.6), vcpkg is now added by default for IDE installations that include C++ workloads. Visual Studio users can run vcpkg commands from a Developer Command Prompt for Visual Studio targeting a new version of the IDE – both the ones embedded in the IDE as well as external terminals. You must run
vcpkg integrate install to configure the built-in copy of vcpkg as the one for use by the IDE and in order to add enable MSBuild and CMake integration. More details will be shared in a separate blog post (coming soon!).
New Community Xbox Triplets
vcpkg now supports targeting Xbox out of the box with four new community triplets. The appropriate triplet is automatically chosen when using the Gaming.Xbox.*.x64 custom platforms in the Microsoft GDK with Xbox Extensions via the
vcpkg integrate functionality. This makes it easy for developers to build open-source dependencies for this platform. Thank you to Chuck Walbourn from the Xbox organization for preparing these triplets.
|x64-xbox-scarlett||Builds DLLs for Xbox Series X|S|
|x64-xbox-scarlett-static||Builds static C++ libraries for Xbox Series X|S|
|x64-xbox-xboxone||Builds DLLs for Xbox One|
|x64-xbox-xboxone-static||Builds static C++ libraries for Xbox One|
Another benefit of these new triplets is for open-source library maintainers, who can validate that their code will build against the
WINAPI_FAMILY_GAMES partition used on Xbox using only the public Windows SDK.
To learn more about the new triplets and how to use them, visit Chuck’s blog post on the topic.
Official vcpkg Tool Release Architecture is Now amd64
vcpkg tool releases on GitHub are now amd64 (was previously x86), as we do not expect many users to prefer x86 going forward.
Binary Caching Support for GitHub Actions Cache
The vcpkg binary caching feature now works with the GitHub Actions Cache. GitHub Actions Cache allows you to use a REST API to query and manage the cache for repositories in GitHub Actions.
PR: Microsoft/vcpkg-tool#836 (thanks @quyykk!)
vcpkg use now stacks with previous
activate commands (but not vice versa)
For artifacts users, we have made the behavior of
vcpkg use and
vcpkg activate consistent when used multiple times. You can run
vcpkg use after previously running
vcpkg use on another artifact to enable both artifacts at the same time. You can also run
vcpkg use after a previous
vcpkg activate to enable all artifacts invoked by both
use. This does not work in reverse however – running
vcpkg activate after
vcpkg use will activate only the artifacts in the manifest at the time of activation, ignoring the artifact previously enabled via
vcpkg use. Lastly, when activating or deactivating artifacts, console output provides clearer feedback about what is going on.
Bug Fixes / Performance Improvements
vcpkg install --only-downloadsnow works when run on ports that call other helper ports, assuming the helper ports are still only downloading files and not building them (PR: Microsoft/vcpkg-tool#901).
- vcpkg.json manifests now allow the user to specify port version 0 explicitly as a version constraint (PR: Microsoft/vcpkg-tool#916, thanks @horenmar!)
- Added localization throughout the tool in areas where it was missing.
- Fixed several issues preventing vcpkg artifacts from working when the vcpkg root directory is set to read-only. Also required to enable vcpkg to be shipped with the Visual Studio IDE. (PRs: Microsoft/vcpkg-tool#938, Microsoft/vcpkg-tool#939, Microsoft/vcpkg-tool#940, Microsoft/vcpkg-tool#941).
- Fixed a crash when running
vcpkg integrate-install powershell(PR: Microsoft/vcpkg-tool#965, thanks @autoantwort!).
Total Ports Available for Tested Triplets
While vcpkg supports a much larger variety of target platforms and architectures, the list above is validated exhaustively to ensure updated ports don’t break other ports in the catalog.
Thank You to Our Contributors
vcpkg couldn’t be where it is today without contributions from our open-source community. Thank you for your continued support! The following people contributed to the vcpkg, vcpkg-tool, or vcpkg-docs repos in this release:
- autoantwort (67 commits)
- dg0yt (38 commits)
- Neumann-A (15 commits)
- FtZPetruska (9 commits)
- talregev (6 commits)
- ex-purple (5 commits)
- SchaichAlonso (5 commits)
- JackBoosY (5 commits)
- DragonJoker (4 commits)
- coryan (4 commits)
- Osyotr (3 commits)
- myd7349 (3 commits)
- chausner (3 commits)
- xiaozhuai (3 commits)
- horenmar (3 commits)
- quyykk (2 commits)
- RT222 (2 commits)
- Pospelove (2 commits)
- Tradias (2 commits)
- daschuer (2 commits)
- an-tao (2 commits)
- luncliff (2 commits)
- BurningEnlightenment (2 commits)
- AenBleidd (2 commits)
- Thomas1664 (1 commit)
- yurybura (1 commit)
- danielaparker (1 commit)
- janisozaur (1 commit)
- ahmedyarub (1 commit)
- koprok (1 commit)
- m-kuhn (1 commit)
- kobykahane (1 commit)
- cmello (1 commit)
You can find the full 2023.04.15 release notes on GitHub for the main repo. Recent updates to the vcpkg tool can be viewed on the vcpkg-tool Releases page. To contribute to documentation, visit the vcpkg-docs repo. If you’re new to vcpkg or curious about how a package manager can make your life easier as a C/C++ developer, check out the vcpkg website – vcpkg.io.
If you would like to contribute to vcpkg and its library catalog, or want to give us feedback on anything, check out our GitHub repo. Please report bugs or request updates to ports in our issue tracker or join more general discussion in our discussion forum.
>Binary Caching Support for GitHub Actions Cache
Does this support automatic pruning of obsolete packages? E.g. if Visual Studio is updated all dependencies are therefore rebuilt from scratch, will old binary packages be removed from cache?
Hi, thanks for the update as Vcpg integration would be great! When is Visual Studio 2022 (version 17.6) Preview expected to release out of preview?