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.

 

Notable Changes

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!).

 

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.

Triplet Description
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.

PR: Microsoft/vcpkg-tool#1005

 

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 use or 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 activateand 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.

PR: Microsoft/vcpkg-tool#944

 

Bug Fixes / Performance Improvements

 

Total Ports Available for Tested Triplets

triplet ports available
x64-windows 2,040
x86-windows 1,974
x64-windows-static 1,942
x64-windows-static-md 1,957
arm64-windows 1,620
x64-linux 1,982
x64-osx 1,911
x64-uwp 1,115
arm-uwp 1,061

 

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)

 

Learn More

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.