{"id":33831,"date":"2024-03-29T17:42:19","date_gmt":"2024-03-29T17:42:19","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=33831"},"modified":"2024-04-01T17:42:17","modified_gmt":"2024-04-01T17:42:17","slug":"whats-new-in-vcpkg-march-2024","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/whats-new-in-vcpkg-march-2024\/","title":{"rendered":"What\u2019s New in vcpkg (March 2024)"},"content":{"rendered":"<p>This blog post summarizes changes to the <a href=\"https:\/\/vcpkg.io\/\">vcpkg package manager<\/a> as part of the <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/releases\/tag\/2024.03.19\">2024.03.19<\/a> and <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/releases\/tag\/2024.03.25\">2024.03.25<\/a> releases as well as changes to <a href=\"https:\/\/learn.microsoft.com\/vcpkg\/\">vcpkg documentation<\/a> throughout March. This month\u2019s vcpkg release includes an arm64ec platform expression, more flexibility when mixing static and dynamic libraries, diagnostics improvements, a change in the binary caching ABI calculation, and bug fixes.<\/p>\n<p>Some stats for this period:<\/p>\n<ul>\n<li>There are now <strong>2,415 total libraries<\/strong> available in the vcpkg public registry.<\/li>\n<li><strong>21 new ports<\/strong> were added to the open-source registry. A <a href=\"https:\/\/learn.microsoft.com\/en-us\/vcpkg\/concepts\/ports\">port is a versioned recipe<\/a> for building a package from source, such as a C or C++ library.<\/li>\n<li><strong>405 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 13 main <a href=\"https:\/\/learn.microsoft.com\/en-us\/vcpkg\/concepts\/triplets\">triplets<\/a>.<\/li>\n<li><strong>32 contributors<\/strong> submitted PRs, issues, or participated in discussions in the main repo.<\/li>\n<li>The main vcpkg repo has over <strong>5,900 forks<\/strong> and <strong>21,200 stars<\/strong> on GitHub.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>vcpkg changelog (2024.03.19 + 2024.03.25 releases)<\/h3>\n<p>Several improvements to diagnostics output. For example:<\/p>\n<pre class=\"prettyprint language-default\"><code class=\"language-default\"># Before\r\n.\\vcpkg.exe install zlib:x64-windows[core]\r\n&lt;unknown&gt;:1:17: error: expected eof on expression: zlib:x64-windows[core]\r\n                                                                   ^\r\nvcpkg install &lt;port name&gt; &lt;port name&gt;...\r\nvcpkg install zlib zlib:x64-windows curl boost\r\n\r\n# After\r\n.\\vcpkg.exe install zlib:x64-windows[core]\r\nerror: expected the end of input parsing a package spec; did you mean zlib[core]:x64-windows instead?\r\non expression: zlib:x64-windows[core]\r\n                               ^<\/code><code><\/code><\/pre>\n<ul>\n<li>Added an arm64ec platform expression to assist with creating triplets targeting arm64ec (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/1352\" target=\"_blank\" rel=\"noopener\">Microsoft\/vcpkg-tool#1352<\/a>, thanks @autoantwort!).<\/li>\n<li>Removed the warning about the default triplet change that was implemented in a previous release (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/1351\">Microsoft\/vcpkg-tool#1351<\/a>).<\/li>\n<li>DLLs can now be used in static triplets if BuildPolicy::DLLS_IN_STATIC_LIBRARY is turned on. Those DLLs should still have CRT and architecture checked. Static libraries can also now be in dynamic triplets if their CRT linkage matches (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/1358\" target=\"_blank\" rel=\"noopener\">Microsoft\/vcpkg-tool#1358<\/a>).<\/li>\n<li>New behavior: vcpkg will output a message with the path to the compiler it is using in certain cases where there is ambiguity about the compiler version (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/1328\">Microsoft\/vcpkg-tool#1328<\/a>).<\/li>\n<li>Installing ports with &#8211;only-downloads will no longer affect the ABI calculation used by the binary caching feature (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/1363\" target=\"_blank\" rel=\"noopener\">Microsoft\/vcpkg-tool#1363<\/a>).<\/li>\n<\/ul>\n<p><strong>Bug fixes: <\/strong><\/p>\n<ul>\n<li>Fixed a bug that could cause a vcpkg command to exit prematurely if a \u2018)\u2019 character was present in certain path assignments (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/1354\">Microsoft\/vcpkg-tool#1354<\/a>, thanks @jcbrill!).<\/li>\n<li>Fixed a bug preventing certain versioning schemes from working with the versioning overrides feature (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/1329\">Microsoft\/vcpkg-tool#1329<\/a>).<\/li>\n<li>Fixed a regression that broke binary caching for the Meson tool port (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/pull\/37585\">Microsoft\/vcpkg#37585<\/a>).<\/li>\n<li>Fixed a crash that could occur when running vcpkg install against a manifest with a non-existent port and version override. (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/issues\/36994\">Microsoft\/vcpkg#36994<\/a>, thanks @dforsten!).<\/li>\n<li>Various other minor bugfixes.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>Documentation changes<\/h3>\n<ul>\n<li>New articles:\n<ul>\n<li><a href=\"https:\/\/learn.microsoft.com\/vcpkg\/concepts\/default-features\">Understanding default features in vcpkg<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Added Default Features section to versioning troubleshooting guide.<\/li>\n<li>Unified some manifest mode articles and fixed links.<\/li>\n<li>Changed <em>CMakePresets.json<\/em> sample files to use schema version 1.<\/li>\n<li>Various minor improvements throughout the docs.<\/li>\n<\/ul>\n<p>If you have any suggestions for our documentation, please <a href=\"https:\/\/github.com\/microsoft\/vcpkg-docs\/issues\">submit an issue in our GitHub repo<\/a> or use the button \u201cThis page\u201d at the bottom of a particular article.<\/p>\n<p><img decoding=\"async\" width=\"304\" height=\"172\" class=\"wp-image-33832\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2024\/03\/a-screenshot-of-a-website-description-automatical.png\" alt=\"A screenshot of a website Description automatically generated\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2024\/03\/a-screenshot-of-a-website-description-automatical.png 304w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2024\/03\/a-screenshot-of-a-website-description-automatical-300x170.png 300w\" sizes=\"(max-width: 304px) 100vw, 304px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3>Total ports available for tested triplets<\/h3>\n<table>\n<tbody>\n<tr>\n<td><strong>triplet<\/strong><\/td>\n<td><strong>ports available<\/strong><\/td>\n<\/tr>\n<tr>\n<td>x64-windows<\/td>\n<td>2,273<\/td>\n<\/tr>\n<tr>\n<td>x86-windows<\/td>\n<td>2,189<\/td>\n<\/tr>\n<tr>\n<td>x64-windows-static<\/td>\n<td>2,162<\/td>\n<\/tr>\n<tr>\n<td>x64-windows-static-md<\/td>\n<td>2,190<\/td>\n<\/tr>\n<tr>\n<td>arm64-windows<\/td>\n<td>1,851<\/td>\n<\/tr>\n<tr>\n<td>x64-uwp<\/td>\n<td>1,259<\/td>\n<\/tr>\n<tr>\n<td>arm64-uwp<\/td>\n<td>1,225<\/td>\n<\/tr>\n<tr>\n<td>x64-linux<\/td>\n<td>2,231<\/td>\n<\/tr>\n<tr>\n<td>x64-osx<\/td>\n<td>2,079<\/td>\n<\/tr>\n<tr>\n<td>arm64-osx<\/td>\n<td>2,045<\/td>\n<\/tr>\n<tr>\n<td>arm-neon-android<\/td>\n<td>1,553<\/td>\n<\/tr>\n<tr>\n<td>x64-android<\/td>\n<td>1,611<\/td>\n<\/tr>\n<tr>\n<td>arm64-android<\/td>\n<td>1,582<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>While vcpkg supports a much larger variety of target platforms and architectures (as <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/tree\/master\/triplets\/community\">community triplets<\/a>), 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 <a href=\"https:\/\/github.com\/microsoft\/vcpkg\">vcpkg<\/a>, <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\">vcpkg-tool<\/a>, or <a href=\"https:\/\/github.com\/microsoft\/vcpkg-docs\">vcpkg-docs<\/a> repos in this release:<\/p>\n<ul>\n<li>jiayuehua (84 commits)<\/li>\n<li>dg0yt (32 commits)<\/li>\n<li>Neumann-A (13 commits)<\/li>\n<li>waywardmonkeys (8 commits)<\/li>\n<li>Thomas1664 (8 commits)<\/li>\n<li>miyanyan (7 commits)<\/li>\n<li>SchaichAlonso (4 commits)<\/li>\n<li>Be-ing (3 commits)<\/li>\n<li>Osyotr (3 commits)<\/li>\n<li>AenBleidd (3 commits)<\/li>\n<li>RT2Code (3 commits)<\/li>\n<li>autoantwort (3 commits)<\/li>\n<li>moritz-h (2 commits)<\/li>\n<li>omarhogni (2 commits)<\/li>\n<li>xiaozhuai (2 commits)<\/li>\n<li>coryan (2 commits)<\/li>\n<li>Honeybunch (1 commit)<\/li>\n<li>DragonJoker (1 commit)<\/li>\n<li>horenmar (1 commit)<\/li>\n<li>Tradias (1 commit)<\/li>\n<li>fran6co (1 commit)<\/li>\n<li>yurybura (1 commit)<\/li>\n<li>eao197 (1 commit)<\/li>\n<li>chausner (1 commit)<\/li>\n<li>VelocityRa (1 commit)<\/li>\n<li>dforsten (1 commit)<\/li>\n<li>jcbrill (1 commit)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>Is your company looking for a better C\/C++ dependency management experience?<\/h3>\n<p>We are partnering with companies to help them get started with vcpkg and overcome any initial hurdles. We have also been making product and documentation changes based on feedback we receive from these partnerships. If you are interested in trying out vcpkg or just have some thoughts to share with us, feel free to reach out at <a href=\"mailto:vcpkg@microsoft.com\">vcpkg@microsoft.com<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3>Learn more<\/h3>\n<p>You can find the <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/releases\/tag\/2024.03.19\">full 2024.03.19 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> or join more general discussion in our <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/discussions\">discussion forum<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This blog post summarizes changes to the vcpkg package manager as part of the 2024.03.19 and 2024.03.25 releases as well as changes to vcpkg documentation throughout March. This month\u2019s vcpkg release includes an arm64ec platform expression, more flexibility when mixing static and dynamic libraries, diagnostics improvements, a change in the binary caching ABI calculation, and [&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-33831","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus","category-vcpkg","tag-vcpkg"],"acf":[],"blog_post_summary":"<p>This blog post summarizes changes to the vcpkg package manager as part of the 2024.03.19 and 2024.03.25 releases as well as changes to vcpkg documentation throughout March. This month\u2019s vcpkg release includes an arm64ec platform expression, more flexibility when mixing static and dynamic libraries, diagnostics improvements, a change in the binary caching ABI calculation, and [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/33831","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=33831"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/33831\/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=33831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=33831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=33831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}