{"id":32119,"date":"2023-04-22T04:29:13","date_gmt":"2023-04-22T04:29:13","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=32119"},"modified":"2024-04-01T17:51:46","modified_gmt":"2024-04-01T17:51:46","slug":"vcpkg-2023-04-15-release-vcpkg-ships-in-visual-studio-xbox-triplets-github-actions-cache-support-and-more","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/vcpkg-2023-04-15-release-vcpkg-ships-in-visual-studio-xbox-triplets-github-actions-cache-support-and-more\/","title":{"rendered":"vcpkg 2023.04.15 Release: vcpkg ships in Visual Studio, Xbox triplets, GitHub Actions Cache Support, and More\u2026"},"content":{"rendered":"<p>The <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/releases\/tag\/2023.04.15\">2023.04.15 release of the vcpkg package manager is available<\/a>. This blog post summarizes changes from February 25<sup>th<\/sup>, 2023 to April 15<sup>th<\/sup>, 2023 for the <a href=\"https:\/\/github.com\/microsoft\/vcpkg\">Microsoft\/vcpkg<\/a>, <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/\">Microsoft\/vcpkg-tool<\/a>, and <a href=\"https:\/\/github.com\/microsoft\/vcpkg-docs\">Microsoft\/vcpkg-docs<\/a> GitHub repos.<\/p>\n<p>Some stats for this period:<\/p>\n<ul>\n<li><strong>39 new ports<\/strong> were added to the open-source registry. If you are unfamiliar with the term \u2018port\u2019, they are packages that are built from source and are typically C\/C++ libraries.<\/li>\n<li><strong>957 updates<\/strong> 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.<\/li>\n<li>There are now <strong>2,190 total libraries<\/strong> available in the vcpkg public registry.<\/li>\n<li><strong>125 contributors<\/strong> submitted PRs, issues, or participated in discussions in the repo.<\/li>\n<li>The main vcpkg repo has over <strong>5,300 forks<\/strong> and <strong>18,400 stars<\/strong> on GitHub.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>Notable Changes<\/h3>\n<h4>vcpkg now included with Visual Studio IDE<\/h4>\n<p>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 \u2013 both the ones embedded in the IDE as well as external terminals. You must run <code>vcpkg integrate install<\/code> 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!).<\/p>\n<p>&nbsp;<\/p>\n<h4>New Community Xbox Triplets<\/h4>\n<p>vcpkg now supports targeting Xbox out of the box with four new community triplets. The appropriate triplet is automatically chosen when using the <em>Gaming.Xbox.*.x64<\/em> custom platforms in the Microsoft GDK with Xbox Extensions via the <code>vcpkg integrate<\/code> 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.<\/p>\n<table style=\"width: 27.2013%; height: 100px;\">\n<tbody>\n<tr style=\"height: 38px;\">\n<td style=\"width: 37.1938%; height: 38px;\" width=\"168\"><strong>Triplet<\/strong><\/td>\n<td style=\"width: 62.8062%; height: 38px;\" width=\"287\"><strong>Description<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 37.1938%; height: 26px;\" width=\"168\">x64-xbox-scarlett<\/td>\n<td style=\"width: 62.8062%; height: 26px;\" width=\"287\">Builds DLLs for Xbox Series X|S<\/td>\n<\/tr>\n<tr style=\"height: 10px;\">\n<td style=\"width: 37.1938%; height: 10px;\" width=\"168\">x64-xbox-scarlett-static<\/td>\n<td style=\"width: 62.8062%; height: 10px;\" width=\"287\">Builds static C++ libraries for Xbox Series X|S<\/td>\n<\/tr>\n<tr style=\"height: 10px;\">\n<td style=\"width: 37.1938%; height: 10px;\" width=\"168\">x64-xbox-xboxone<\/td>\n<td style=\"width: 62.8062%; height: 10px;\" width=\"287\">Builds DLLs for Xbox One<\/td>\n<\/tr>\n<tr style=\"height: 16px;\">\n<td style=\"width: 37.1938%; height: 16px;\" width=\"168\">x64-xbox-xboxone-static<\/td>\n<td style=\"width: 62.8062%; height: 16px;\" width=\"287\">Builds static C++ libraries for Xbox One<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>Another benefit of these new triplets is for open-source library maintainers, who can validate that their code will build against the <code>WINAPI_FAMILY_GAMES<\/code> partition used on Xbox using only the public Windows SDK.<\/p>\n<p>To learn more about the new triplets and how to use them, visit <a href=\"https:\/\/walbourn.github.io\/vcpkg-now-supports-targeting-xbox\/\">Chuck\u2019s blog post<\/a> on the topic.<\/p>\n<p>&nbsp;<\/p>\n<h4>Official vcpkg Tool Release Architecture is Now amd64<\/h4>\n<p>vcpkg tool releases on GitHub are now amd64 (was previously x86), as we do not expect many users to prefer x86 going forward.<\/p>\n<p>PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/1005\">Microsoft\/vcpkg-tool#1005<\/a><\/p>\n<p>&nbsp;<\/p>\n<h4>Binary Caching Support for GitHub Actions Cache<\/h4>\n<p>The vcpkg binary caching feature now works with the <a href=\"https:\/\/docs.github.com\/en\/rest\/actions\/cache\">GitHub Actions Cache<\/a>. GitHub Actions Cache allows you to use a REST API to query and manage the cache for repositories in <a href=\"https:\/\/docs.github.com\/en\/actions\">GitHub Actions<\/a>.<\/p>\n<p>PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/836\">Microsoft\/vcpkg-tool#836<\/a> (thanks @quyykk!)<\/p>\n<p>&nbsp;<\/p>\n<h4><span style=\"font-size: 18pt;\"><code>vcpkg use<\/code> now stacks with previous <code>use<\/code> or <code>activate<\/code> commands (but not vice versa)<\/span><\/h4>\n<p>For artifacts users, we have made the behavior of <span style=\"font-size: 12pt;\"><code>vcpkg use<\/code><\/span> and <span style=\"font-size: 12pt;\"><code>vcpkg activate<\/code><\/span> consistent when used multiple times. You can run <code>vcpkg use<\/code> after previously running <span style=\"font-size: 12pt;\"><code>vcpkg use<\/code><\/span> on another artifact to enable both artifacts at the same time. You can also run <span style=\"font-size: 12pt;\"><code>vcpkg use<\/code><\/span> after a previous <span style=\"font-size: 12pt;\"><code>vcpkg activate<\/code><\/span> to enable all artifacts invoked by both <span style=\"font-size: 12pt;\"><code>activate<\/code><\/span>and <span style=\"font-size: 12pt;\"><code>use<\/code><\/span>. This does not work in reverse however \u2013 running <span style=\"font-size: 12pt;\"><code>vcpkg activate<\/code><\/span> after <span style=\"font-size: 12pt;\"><code>vcpkg use<\/code><\/span> will activate only the artifacts in the manifest at the time of activation, ignoring the artifact previously enabled via <span style=\"font-size: 12pt;\"><code>vcpkg use<\/code><\/span>. \u00a0Lastly, when activating or deactivating artifacts, console output provides clearer feedback about what is going on.<\/p>\n<p>PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/944\">Microsoft\/vcpkg-tool#944<\/a><\/p>\n<p>&nbsp;<\/p>\n<h4>Bug Fixes \/ Performance Improvements<\/h4>\n<ul>\n<li><code>vcpkg install --only-downloads<\/code> now works when run on ports that call other helper ports, assuming the helper ports are still only downloading files and not building them (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/901\">Microsoft\/vcpkg-tool#901<\/a>).<\/li>\n<li><em>vcpkg.json<\/em> manifests now allow the user to specify port version 0 explicitly as a version constraint (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/916\">Microsoft\/vcpkg-tool#916<\/a>, thanks @horenmar!)<\/li>\n<li>Added localization throughout the tool in areas where it was missing.<\/li>\n<li>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: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/938\">Microsoft\/vcpkg-tool#938<\/a>, <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/939\">Microsoft\/vcpkg-tool#939<\/a>, <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/940\">Microsoft\/vcpkg-tool#940<\/a>, <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/941\">Microsoft\/vcpkg-tool#941<\/a>).<\/li>\n<li>Fixed a crash when running <code>vcpkg integrate-install powershell<\/code> (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/965\">Microsoft\/vcpkg-tool#965<\/a>, thanks @autoantwort!).<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>Total Ports Available for Tested Triplets<\/h3>\n<table style=\"width: 13.3692%;\" width=\"258\">\n<tbody>\n<tr>\n<td style=\"width: 63.0189%; text-align: left;\" width=\"163\"><strong>triplet<\/strong><\/td>\n<td style=\"width: 36.6038%; text-align: center;\" width=\"95\"><strong>ports available<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 63.0189%;\" width=\"163\">x64-windows<\/td>\n<td style=\"width: 36.6038%; text-align: center;\" width=\"95\">2,040<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 63.0189%;\" width=\"163\">x86-windows<\/td>\n<td style=\"width: 36.6038%; text-align: center;\" width=\"95\">1,974<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 63.0189%;\" width=\"163\">x64-windows-static<\/td>\n<td style=\"width: 36.6038%; text-align: center;\" width=\"95\">1,942<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 63.0189%;\" width=\"163\">x64-windows-static-md<\/td>\n<td style=\"width: 36.6038%; text-align: center;\" width=\"95\">1,957<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 63.0189%;\" width=\"163\">arm64-windows<\/td>\n<td style=\"width: 36.6038%; text-align: center;\" width=\"95\">1,620<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 63.0189%;\" width=\"163\">x64-linux<\/td>\n<td style=\"width: 36.6038%; text-align: center;\" width=\"95\">1,982<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 63.0189%;\" width=\"163\">x64-osx<\/td>\n<td style=\"width: 36.6038%; text-align: center;\" width=\"95\">1,911<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 63.0189%;\" width=\"163\">x64-uwp<\/td>\n<td style=\"width: 36.6038%; text-align: center;\" width=\"95\">1,115<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 63.0189%;\" width=\"163\">arm-uwp<\/td>\n<td style=\"width: 36.6038%; text-align: center;\" width=\"95\">1,061<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>While vcpkg supports a much larger variety of target platforms and architectures, the list above is validated exhaustively to ensure updated ports don\u2019t break other ports in the catalog.<\/p>\n<p>&nbsp;<\/p>\n<h3>Thank You to Our Contributors<\/h3>\n<p>vcpkg couldn\u2019t 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:<\/p>\n<ul>\n<li>autoantwort (67 commits)<\/li>\n<li>dg0yt (38 commits)<\/li>\n<li>Neumann-A (15 commits)<\/li>\n<li>FtZPetruska (9 commits)<\/li>\n<li>talregev (6 commits)<\/li>\n<li>ex-purple (5 commits)<\/li>\n<li>SchaichAlonso (5 commits)<\/li>\n<li>JackBoosY (5 commits)<\/li>\n<li>DragonJoker (4 commits)<\/li>\n<li>coryan (4 commits)<\/li>\n<li>Osyotr (3 commits)<\/li>\n<li>myd7349 (3 commits)<\/li>\n<li>chausner (3 commits)<\/li>\n<li>xiaozhuai (3 commits)<\/li>\n<li>horenmar (3 commits)<\/li>\n<li>quyykk (2 commits)<\/li>\n<li>RT222 (2 commits)<\/li>\n<li>Pospelove (2 commits)<\/li>\n<li>Tradias (2 commits)<\/li>\n<li>daschuer (2 commits)<\/li>\n<li>an-tao (2 commits)<\/li>\n<li>luncliff (2 commits)<\/li>\n<li>BurningEnlightenment (2 commits)<\/li>\n<li>AenBleidd (2 commits)<\/li>\n<li>Thomas1664 (1 commit)<\/li>\n<li>yurybura (1 commit)<\/li>\n<li>danielaparker (1 commit)<\/li>\n<li>janisozaur (1 commit)<\/li>\n<li>ahmedyarub (1 commit)<\/li>\n<li>koprok (1 commit)<\/li>\n<li>m-kuhn (1 commit)<\/li>\n<li>kobykahane (1 commit)<\/li>\n<li>cmello (1 commit)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>Learn More<\/h3>\n<p>You can find the <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/releases\/tag\/2023.04.15\">full 2023.04.15 release notes on GitHub<\/a> for the main repo. Recent updates to the vcpkg tool can be viewed on the <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/releases\">vcpkg-tool Releases page<\/a>. To contribute to documentation, visit the <a href=\"https:\/\/github.com\/microsoft\/vcpkg-docs\">vcpkg-docs repo<\/a>. If you\u2019re new to vcpkg or curious about how a package manager can make your life easier as a C\/C++ developer, check out the <a href=\"https:\/\/vcpkg.io\/en\/index.html\">vcpkg website \u2013 vcpkg.io<\/a>.<\/p>\n<p>If you would like to contribute to vcpkg and its library catalog, or want to give us feedback on anything, check out our <a href=\"https:\/\/github.com\/microsoft\/vcpkg\">GitHub repo<\/a>. Please report bugs or request updates to ports in our <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/issues\">issue tracker<\/a>\u00a0or join more general discussion in our <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/discussions\">discussion forum<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 \u2018port\u2019, they are [&hellip;]<\/p>\n","protected":false},"author":1063,"featured_media":28096,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,272],"tags":[273],"class_list":["post-32119","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus","category-vcpkg","tag-vcpkg"],"acf":[],"blog_post_summary":"<p>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 \u2018port\u2019, they are [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/32119","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/1063"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=32119"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/32119\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/28096"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=32119"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=32119"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=32119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}