{"id":462371,"date":"2025-06-08T15:00:11","date_gmt":"2025-06-08T15:00:11","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=462371"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2025-06-08T15:00:11","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=462371","title":{"rendered":"<span>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 \u043d\u0430 C++ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e vcpkg registry \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c45\/b7c\/1ab\/c45b7c1ab8400c67f4e6c20bc7414346.png\" width=\"1718\" height=\"911\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c45\/b7c\/1ab\/c45b7c1ab8400c67f4e6c20bc7414346.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c45\/b7c\/1ab\/c45b7c1ab8400c67f4e6c20bc7414346.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u0434\u043e\u0440\u043e\u0433\u0438\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u0425\u0430\u0431\u0440\u0430! \u042f \u0434\u0430\u0432\u043d\u043e \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0440\u0435\u0435\u0441\u0442\u0440\u0430\u043c\u0438 \u043f\u043e\u0434 \u043a\u043b\u044e\u0447, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0438\u0433\u0434\u0435 \u043d\u0435\u0442 \u0447\u0435\u0442\u043a\u043e\u0439 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u0435. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c, \u043a\u0430\u043a \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u0435\u0441\u0442\u0440\u044b vcpkg \u0438 \u043a\u0430\u043a \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0421\u0442\u0430\u0442\u044c\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u043c\u0435\u043b \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 vcpkg \u0438\u043b\u0438 conan<\/p>\n<p><strong>\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/ttps:\/\/learn.microsoft.com\/ru-ru\/vcpkg\/concepts\/registries\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0440\u0435\u0435\u0441\u0442\u0440\u0430\u043c<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/learn.microsoft.com\/ru-ru\/vcpkg\/concepts\/ports\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e port-\u0444\u0430\u0439\u043b\u0430\u043c<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/learn.microsoft.com\/en-us\/vcpkg\/users\/binarycaching\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043e \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438<\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435<\/strong><\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0435\u0435\u0441\u0442\u0440\u0430<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0432\u043e\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 Qt5\/Boost<\/p>\n<\/li>\n<li>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 standalone \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0438\u043d\u0430\u0440\u0435\u0439 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 nuget<\/p>\n<\/li>\n<li>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c vcpkg + nuget (\u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435)<\/p>\n<\/li>\n<\/ul>\n<h2>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0435\u0435\u0441\u0442\u0440\u0430<\/h2>\n<p><a class=\"anchor\" name=\"new_registry\" id=\"new_registry\"><\/a><\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 Git-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 (\u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u043b\u044e\u0431\u043e\u0439, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f). \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 (<a href=\"https:\/\/github.com\/SaulBerrenson\/registry\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0441\u044b\u043b\u043a\u0430<\/a>)<\/p>\n<p> \u0414\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b baseline.json \u0432 \u043f\u0430\u043f\u043a\u0435 versions. <\/p>\n<details class=\"spoiler\">\n<summary>versions\/baseline.json<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">{   \"default\": {   } } <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041a\u043e\u043c\u043c\u0438\u0442\u0438\u043c. \u041f\u0443\u0448\u0438\u043c. \u041f\u0443\u0441\u0442\u043e\u0439 \u0440\u0435\u0435\u0441\u0442\u0440 \u0441\u043e\u0437\u0434\u0430\u043d. \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0437 \u043f\u0430\u043f\u043a\u0438 <a href=\"https:\/\/github.com\/SaulBerrenson\/registry\/tree\/main\/scripts\" rel=\"noopener noreferrer nofollow\">scripts<\/a>.<\/p>\n<h2>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0432\u043e\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/h2>\n<p>\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e port-\u0444\u0430\u0439\u043b\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u0430.<\/p>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 Boost \u0432\u0435\u0440\u0441\u0438\u0438 1.87. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f 1.88, \u043e\u0434\u043d\u0430\u043a\u043e \u0435\u0451 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0432 vcpkg \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u044b\u043c. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u044f \u043d\u0430\u043c\u0435\u0440\u0435\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 qt5-base \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u043d\u0430 \u0437\u0435\u0440\u043a\u0430\u043b\u0435 \u042f\u043d\u0434\u0435\u043a\u0441\u0430. \u0414\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0446\u0435\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f:<\/p>\n<ul>\n<li>\n<p> \u041f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0444\u043e\u0440\u043a \u0444\u0430\u0439\u043b\u0430 port qt5-base.<\/p>\n<\/li>\n<li>\n<p> \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b port \u0434\u043b\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Boost.<\/p>\n<\/li>\n<\/ul>\n<h2>Port qt5-base<\/h2>\n<p>\u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u044f \u0432\u0437\u044f\u043b \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 port qt5-base. \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0438\u0437 vcpkg\/ports \u0432 \u043d\u0430\u0448 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438 port\/qt5-base<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f<\/summary>\n<div class=\"spoiler__content\">\n<p>\u251c\u2500\u2500\u2500ports<br \/> \u2502   \u251c\u2500\u2500\u2500boost<br \/> \u2502   \u2514\u2500\u2500\u2500qt5-base<br \/> \u2502       \u251c\u2500\u2500\u2500cmake<br \/> \u2502       \u2514\u2500\u2500\u2500patches<br \/> \u251c\u2500\u2500\u2500scripts<br \/> \u251c\u2500\u2500\u2500share<br \/> \u2514\u2500\u2500\u2500versions<\/p>\n<\/div>\n<\/details>\n<p>\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f (\u0444\u0430\u0439\u043b registry\/ports\/qt5-base\/cmake\/<a href=\"https:\/\/github.com\/SaulBerrenson\/registry\/blob\/main\/ports\/qt5-base\/cmake\/qt_download_submodule.cmake\" rel=\"noopener noreferrer nofollow\">qt_download_submodule.cmake<\/a><\/p>\n<pre><code>    set(FULL_VERSION \"${QT_MAJOR_MINOR_VER}.${QT_PATCH_VER}\")     set(ARCHIVE_NAME \"${NAME}-everywhere-opensource-src-${FULL_VERSION}.tar.xz\")     set(URLS         \"https:\/\/mirror.yandex.ru\/mirrors\/qt.io\/${QT_MAJOR_MINOR_VER}\/${FULL_VERSION}\/submodules\/${ARCHIVE_NAME}\"     )<\/code><\/pre>\n<p>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043f\u0430\u043a\u0435\u0442\u0435:<\/p>\n<ul>\n<li>\n<p>\u041a\u043e\u043c\u043c\u0438\u0442\u0438\u043c \u0444\u0430\u0439\u043b\u044b \u0432 \u043f\u0430\u043f\u043a\u0435 ports<\/p>\n<\/li>\n<li>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u0440\u0442-\u0444\u0430\u043b\u044b (scripts\/format-ports.py)<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">cd scripts py format-ports.py<\/code><\/pre>\n<ul>\n<li>\n<p>\u041a\u043e\u043c\u043c\u0438\u0442\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0438 \u0441\u043d\u043e\u0432\u0430 \u043a\u043e\u043c\u043c\u0438\u0442\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<pre><code>cd scripts py update-versions.py<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u0432\u043e\u0434\u0430<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f76\/285\/578\/f762855785fd5cde7121f5b708810fba.png\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u0441\u0438\u0439\" title=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u0441\u0438\u0439\" width=\"607\" height=\"502\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f76\/285\/578\/f762855785fd5cde7121f5b708810fba.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f76\/285\/578\/f762855785fd5cde7121f5b708810fba.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u0441\u0438\u0439<\/figcaption><\/div>\n<\/figure>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0448\u0430\u0433\u043e\u0432 \u0443 \u0432\u0430\u0441 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b\u0435 \u043f\u0430\u043f\u043a\u0438 \u0438 \u0444\u0430\u0439\u043b\u044b \u0432 versions (\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0445 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0443\u043a\u0430\u043c\u0438!)<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 versions\/q-\/qt5-base.json<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">{   \"versions\": [     {       \"git-tree\": \"e04eef6f4c169b57fd43a68a1a3d2bd9ef6d6ec2\",       \"version\": \"5.15.16\",       \"port-version\": 4     }   ] } <\/code><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u0430\u043c \u0432\u0430\u0448\u0435\u0433\u043e port-\u0444\u0430\u0439\u043b\u0430.<\/p>\n<\/div>\n<\/details>\n<h3>Port boost<\/h3>\n<p>\u0412\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0448\u0430\u0433\u0438 \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044e \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 qt5-base \u0438 \u0437\u0430\u043e\u0441\u0442\u0440\u044f\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043d\u0438\u0445 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043a\u0440\u0430\u0442\u043a\u043e. \u041c\u043e\u0439 <a href=\"https:\/\/github.com\/SaulBerrenson\/registry\/tree\/main\/ports\/boost\" rel=\"noopener noreferrer nofollow\">portfile <\/a>\u0431\u0443\u0434\u0435\u0442<\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 1 \u043f\u043e\u0440\u0442-\u0444\u0430\u0439\u043b\u0430<\/p>\n<\/li>\n<li>\n<p>\u041d\u0443\u0436\u043d\u043e\u0439 \u043c\u043d\u0435 \u0432\u0435\u0440\u0441\u0438\u0438<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b 2 \u0444\u0438\u0447\u0438 &#8212; \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e static, \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e shared<\/p>\n<\/li>\n<\/ul>\n<details class=\"spoiler\">\n<summary>\u043c\u043e\u0439 portfile.cmake<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cmake\"> string(REPLACE \".\" \"-\" ARCHIVE_VERSION ${VERSION})  set(BOOST_ARVHICE_FILENAME boost-${ARCHIVE_VERSION}.zip)  vcpkg_download_distfile(     ARCHIVE_ZIP     URLS https:\/\/github.com\/boostorg\/boost\/releases\/download\/boost-${VERSION}\/boost-${VERSION}-cmake.7z     FILENAME ${BOOST_ARVHICE_FILENAME}     SHA512 994356c84f4b96e263087eff40e53298791e7d72c6d24dd2cc3988c32edaa880180d39401504befe5c1b197ebead77c855452c608c6560a42f50f5a3016e0add )  vcpkg_extract_source_archive(     SOURCE_PATH     ARCHIVE \"${ARCHIVE_ZIP}\" )  string(COMPARE EQUAL \"${VCPKG_LIBRARY_LINKAGE}\" \"dynamic\" BUILD_SHARED) string(COMPARE EQUAL \"${VCPKG_CRT_LINKAGE}\" \"static\" BUILD_STATIC_CRT)  if(BUILD_SHARED)     set(OPTION_BUILD_SHARED_LIBS ON) else()     set(OPTION_BUILD_SHARED_LIBS OFF) endif()  if(BUILD_STATIC_CRT)     set(BOOST_RUNTIME_LINK static) else()     set(BOOST_RUNTIME_LINK shared) endif()   if(\"force-static\" IN_LIST FEATURES)     set(OPTION_BUILD_SHARED_LIBS OFF) #rewrite options     vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif()  if(\"force-shared\" IN_LIST FEATURES)     set(OPTION_BUILD_SHARED_LIBS ON) #rewrite options     vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif()   set(BOOST_EXCLUDE_COMPONENTS test log wave stacktrace python) list(JOIN BOOST_EXCLUDE_COMPONENTS \"\\\\;\" BOOST_EXCLUDE_LIBRARIES)  message(STATUS \"Replace BoostConfig with fixed search lib_DIR\") configure_file(${CMAKE_CURRENT_LIST_DIR}\/BoostConfig.cmake.in ${SOURCE_PATH}\/tools\/cmake\/config\/BoostConfig.cmake USE_SOURCE_PERMISSIONS @ONLY)  # disable check LINUX_VERSION_CODE in ASTRA if(UNIX)         file(COPY_FILE ${CMAKE_CURRENT_LIST_DIR}\/config.hpp ${SOURCE_PATH}\/libs\/asio\/include\/boost\/asio\/detail\/config.hpp) endif()  message(STATUS \"Building boost with BUILD_SHARED_LIBS=${OPTION_BUILD_SHARED_LIBS}, CRT=${BOOST_RUNTIME_LINK} EXCLUDE:${BOOST_EXCLUDE_COMPONENTS}\")  vcpkg_cmake_configure(     SOURCE_PATH ${SOURCE_PATH}     WINDOWS_USE_MSBUILD     OPTIONS         -DBUILD_SHARED_LIBS=${OPTION_BUILD_SHARED_LIBS}         -DBOOST_RUNTIME_LINK=${BOOST_RUNTIME_LINK}         -DBOOST_EXCLUDE_LIBRARIES=${BOOST_EXCLUDE_LIBRARIES}         -DBOOST_ENABLE_PYTHON=OFF         -DBUILD_TESTING=OFF )  vcpkg_cmake_install()  vcpkg_cmake_config_fixup(PACKAGE_NAME boost CONFIG_PATH lib\/cmake\/Boost-${VERSION} DO_NOT_DELETE_PARENT_CONFIG_PATH) #main config  vcpkg_copy_pdbs()  # Fixup configs for debug and release function(_fixup_boost_config_for_dir_ target_dir)      message(STATUS \"Fixup boost configs for dir: ${target_dir}\")     file(GLOB CONFIG_LIST LIST_DIRECTORIES true ${target_dir}\/boost_*)      foreach(dir ${CONFIG_LIST})         IF(IS_DIRECTORY ${dir})              string(REPLACE \"${target_dir}\/\" \"\" dir_name \"${dir}\")             #string(REPLACE \"-1.83.0\" \"\" PKG_CONFIG_NAME ${dir_name})             string(REPLACE \"-${VERSION}\" \"\" PKG_CONFIG_NAME ${dir_name})             message(STATUS \"try fixup: ${dir_name} - ${PKG_CONFIG_NAME}\")              vcpkg_cmake_config_fixup(PACKAGE_NAME ${PKG_CONFIG_NAME} CONFIG_PATH lib\/cmake\/${dir_name} DO_NOT_DELETE_PARENT_CONFIG_PATH)         ELSE()             CONTINUE()         ENDIF()     endforeach()      unset(CONFIG_LIST) endfunction()  _fixup_boost_config_for_dir_(${CURRENT_PACKAGES_DIR}\/debug\/lib\/cmake) _fixup_boost_config_for_dir_(${CURRENT_PACKAGES_DIR}\/lib\/cmake)  file(REMOVE_RECURSE \"${CURRENT_PACKAGES_DIR}\/debug\/include\") file(REMOVE_RECURSE \"${CURRENT_PACKAGES_DIR}\/debug\/lib\/cmake\")  file(REMOVE_RECURSE \"${CURRENT_PACKAGES_DIR}\/lib\/cmake\")   file(INSTALL \"${SOURCE_PATH}\/LICENSE_1_0.txt\" DESTINATION \"${CURRENT_PACKAGES_DIR}\/share\/${PORT}\" RENAME copyright) <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0412\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 <a href=\"https:\/\/github.com\/SaulBerrenson\/registry\/tree\/main\/ports\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438<\/a><\/p>\n<p>\u041f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c \u0432\u0441\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044e \u0432\u0435\u0440\u0441\u0438\u0439 \/ \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432, \u043a\u0430\u043a \u0432 qt5-base<\/p>\n<h2>\u0421\u0431\u043e\u0440\u043a\u0430 standalone \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/h2>\n<p>\u0421 2024 \u0433\u043e\u0434\u0430 vcpkg \u043d\u0430\u0443\u0447\u0438\u043b\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c standalone \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f. \u041e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u043e\u0442\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f vcpkg.<\/p>\n<p>\u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430:<\/p>\n<ul>\n<li>\n<p>vcpkg.json &#8212; \u0444\u0430\u0439\u043b \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439<\/p>\n<\/li>\n<li>\n<p>vcpkg-configuration.json &#8212; \u0444\u0430\u0439\u043b \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0440\u0435\u0435\u0441\u0442\u0440\u043e\u0432, \u043e\u0442\u043a\u0443\u0434\u0430 \u0447\u0442\u043e \u0431\u0440\u0430\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0431\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 <a href=\"https:\/\/github.com\/SaulBerrenson\/registry\/blob\/main\/scripts\/make-vcpkg-configuration.py\" rel=\"noopener noreferrer nofollow\">make-vcpkg-configuration.py<\/a>. \u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0440\u0435\u0435\u0441\u0442\u0440\u0443 \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u0441\u0435 \u0432\u0435\u0440\u0441\u0438\u0438, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044f \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0441 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u043e\u0439 \u043a \u043a\u043e\u043c\u0438\u0442\u0443 \u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044e.<\/p>\n<details class=\"spoiler\">\n<summary>\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">cd scripts py make-vcpkg-configuration.py<\/code><\/pre>\n<p>\u0411\u0443\u0434\u0443\u0442 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/718\/bfd\/cb7\/718bfdcb7fa76d9304e0da911c68a851.png\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b\" title=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b\" width=\"1014\" height=\"156\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/718\/bfd\/cb7\/718bfdcb7fa76d9304e0da911c68a851.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/718\/bfd\/cb7\/718bfdcb7fa76d9304e0da911c68a851.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/figcaption><\/div>\n<\/figure>\n<details class=\"spoiler\">\n<summary>vcpkg.json<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">{     \"dependencies\": [],     \"overrides\": [         {             \"name\": \"boost\",             \"version\": \"1.87.0#2\"         },         {             \"name\": \"qt5-base\",             \"version\": \"5.15.16#4\"         }     ] }<\/code><\/pre>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>vcpkg-configuration.json<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">{     \"default-registry\": {         \"kind\": \"git\",         \"repository\": \"https:\/\/github.com\/microsoft\/vcpkg.git\",         \"baseline\": \"3425f537d2f01c761d2d2cff59a7577eb4f568c0\"     },     \"registries\": [         {             \"kind\": \"git\",             \"repository\": \"https:\/\/github.com\/SaulBerrenson\/registry.git\",             \"reference\": \"main\",             \"packages\": [                 \"boost\",                 \"qt5-base\"             ],             \"baseline\": \"f3b8c64ae49a1dfd4cd845767e7d14f6f03bd09d\"         }     ] }<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u042d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0440\u0443\u043a\u0430\u043c\u0438, \u043d\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u043f\u0440\u043e\u0449\u0435 \u0438 \u044d\u0442\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435.<\/p>\n<\/div>\n<\/details>\n<p>\u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0440\u0435\u0435\u0441\u0442\u0440 \u0442\u0435\u043c\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0442\u0438\u043c \u0432\u0438\u0434\u0435\u0442\u044c \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438<\/p>\n<details class=\"spoiler\">\n<summary>\u043f\u0440\u0438\u043c\u0435\u0440 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (vcpkg.json)<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">{     \"dependencies\": [ {             \"name\": \"boost\",             \"features\": [\"force-static\"]         } ],     \"overrides\": [         {             \"name\": \"boost\",             \"version\": \"1.87.0#2\"         },         {             \"name\": \"qt5-base\",             \"version\": \"5.15.16#4\"         }     ] }<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0443\u0434\u043e\u0431\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c \u0442\u0443\u0434\u0430:<\/p>\n<ul>\n<li>\n<p>vcpkg.json<\/p>\n<\/li>\n<li>\n<p>vcpkg-configuration.json<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/SaulBerrenson\/registry\/blob\/main\/scripts\/vcpkg_manager.py\" rel=\"noopener noreferrer nofollow\">vcpkg_manager.py<\/a>  (\u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0439)<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">py vcpkg_manager.py --cache local --triplet x64-windows --steps install export  PS C:\\projects\\article\\build\\env\\v142_x64&gt; Get-ChildItem -Recurse -Depth 1 | Select-Object @{Name=\"Level\";Expression={($_.FullName.Split('\\').Count - (Get-Location).Path.Split('\\').Count)}}, Name, FullName | Format-Table  Level Name         FullName ----- ----         --------     1 installed    C:\\projects\\article\\build\\env\\v142_x64\\installed     1 scripts      C:\\projects\\article\\build\\env\\v142_x64\\scripts     1 .vcpkg-root  C:\\projects\\article\\build\\env\\v142_x64\\.vcpkg-root     1 vcpkg.exe    C:\\projects\\article\\build\\env\\v142_x64\\vcpkg.exe     2 vcpkg        C:\\projects\\article\\build\\env\\v142_x64\\installed\\vcpkg     2 x64-windows  C:\\projects\\article\\build\\env\\v142_x64\\installed\\x64-windows     2 buildsystems C:\\projects\\article\\build\\env\\v142_x64\\scripts\\buildsystems     2 cmake        C:\\projects\\article\\build\\env\\v142_x64\\scripts\\cmake<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0442\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 vcpkg. \u0414\u043b\u044f \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c toolchainFile \u043d\u0435 \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f vcpkg, \u0430 \u0438\u0437 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0438 &#8212; \u0442\u043e\u0433\u0434\u0430 \u043e\u043d \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435.<\/p>\n<h2>\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0438\u043d\u0430\u0440\u0435\u0439 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 nuget<\/h2>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043c\u0430\u043d\u0447\u0438\u0432\u0430, \u043d\u043e \u0438\u043d\u043e\u0433\u0434\u0430, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e, \u0432 \u0446\u0435\u043b\u044f\u0445 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 CI\\CD \u0438 \u0442.\u0434. &#8212; \u0435\u0441\u0442\u044c \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e conan.<\/p>\n<h3>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430<\/h3>\n<p>\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043b\u044e\u0431\u043e\u0439 nuget-\u0441\u0435\u0440\u0432\u0435\u0440, \u044f \u0432\u044b\u0431\u0438\u0440\u0430\u044e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 open-source \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/loic-sharma.github.io\/BaGet\/\" rel=\"noopener noreferrer nofollow\">Baget<\/a>. \u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u043c \u0432 \u0434\u043e\u043a\u0435\u0440\u0435. \u042f \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u0443\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043d\u0430 \u0431\u0430\u0437\u0435 docker (<a href=\"https:\/\/github.com\/SaulBerrenson\/registry\/tree\/main\/share\/cache-server\" rel=\"noopener noreferrer nofollow\">\u0441\u0441\u044b\u043b\u043a\u0430<\/a>). \u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 &#8212; \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043d\u0435 \u0446\u0435\u043b\u044c \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<details class=\"spoiler\">\n<summary>docker-compose.yml<\/summary>\n<div class=\"spoiler__content\">\n<p>version: &#8216;3.8&#8217;<\/p>\n<p>services:<br \/> baget:<br \/> image: loicsharma\/baget<br \/> container_name: baget<br \/> ports:<br \/> &#8212; &#171;5555:80&#187;<br \/> volumes:<br \/> &#8212; .\/baget-data:\/var\/baget<br \/> environment:<br \/> &#8212; ApiKey__IsRequired=false<br \/> &#8212; Storage__Type=FileSystem<br \/> &#8212; Storage__Path=\/var\/baget\/packages<br \/> &#8212; Database__Type=PostgreSql<br \/> &#8212; Database__ConnectionString=Host=postgres;Port=5432;Database=baget;Username=baget;Password=baget_password<br \/> &#8212; Search__Type=Database<br \/> networks:<br \/> &#8212; baget-network<br \/> depends_on:<br \/> &#8212; postgres<\/p>\n<p>postgres:<br \/> image: postgres:15-alpine<br \/> container_name: postgres<br \/> environment:<br \/> &#8212; POSTGRES_USER=baget<br \/> &#8212; POSTGRES_PASSWORD=baget_password<br \/> &#8212; POSTGRES_DB=baget<br \/> ports:<br \/> &#8212; &#171;5432:5432&#187;<br \/> volumes:<br \/> &#8212; postgres-data:\/var\/lib\/postgresql\/data<br \/> networks:<br \/> &#8212; baget-network<\/p>\n<p>volumes:<br \/> postgres-data:<\/p>\n<p>networks:<br \/> baget-network:<br \/> driver: bridge<\/p>\n<\/div>\n<\/details>\n<pre><code class=\"bash\">docker-compose up -d<\/code><\/pre>\n<p>\u0412\u0430\u0436\u043d\u043e: baget \u0432 \u0441\u0442\u043e\u043a\u0435 \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 postgresql \u0441 \u0434\u043b\u0438\u043d\u043d\u044b\u043c\u0438 \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 vcpkg. \u0424\u0438\u043a\u0441\u0438\u043c \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e (\u0441\u043c\u0435\u043d\u043e\u0439 \u0442\u0438\u043f\u043e\u0432 \u0432 \u0440\u044f\u0434\u0435 \u043a\u043e\u043b\u043e\u043d\u043e\u043a)<\/p>\n<pre><code class=\"bash\">docker exec -it postgres psql -U baget -d baget -c \"ALTER TABLE \\\"Packages\\\" ALTER COLUMN \\\"Version\\\" TYPE TEXT; ALTER TABLE \\\"Packages\\\" ALTER COLUMN \\\"Id\\\" TYPE TEXT; ALTER TABLE \\\"Packages\\\" ALTER COLUMN \\\"OriginalVersion\\\" TYPE TEXT; ALTER TABLE \\\"PackageTypes\\\" ALTER COLUMN \\\"Version\\\" TYPE TEXT; ALTER TABLE \\\"Packages\\\" ALTER COLUMN \\\"Description\\\" TYPE TEXT;\"<\/code><\/pre>\n<p>\u0421\u0435\u0440\u0432\u0435\u0440 \u043f\u043e\u0434\u043d\u044f\u0442 &#8212; \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a80\/1f4\/1ae\/a801f41ae126cd3b11243113c4a71067.png\" alt=\"\u041f\u0443\u0441\u0442\u043e\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\" title=\"\u041f\u0443\u0441\u0442\u043e\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\" width=\"3440\" height=\"1292\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a80\/1f4\/1ae\/a801f41ae126cd3b11243113c4a71067.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a80\/1f4\/1ae\/a801f41ae126cd3b11243113c4a71067.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041f\u0443\u0441\u0442\u043e\u0439 \u0441\u0435\u0440\u0432\u0435\u0440<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <a href=\"https:\/\/github.com\/SaulBerrenson\/registry\/blob\/main\/scripts\/vcpkg_manager.py\" rel=\"noopener noreferrer nofollow\">vcpkg_manager.py<\/a> <\/p>\n<pre><code class=\"bash\">py vcpkg_manager.py --cache remote --triplet x64-windows --steps install export --nuget-url http:\/\/home-pc:5555\/v3\/index.json  # \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440 \u043a\u0443\u0434\u0430 \u0437\u0430\u043b\u0438\u0432\u0430\u0442\u044c --nuget-url http:\/\/home-pc:5555\/v3\/index.json<\/code><\/pre>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a33\/e81\/95b\/a33e8195b556cab2eb77cb1fe34823e3.png\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\" title=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\" width=\"1469\" height=\"572\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a33\/e81\/95b\/a33e8195b556cab2eb77cb1fe34823e3.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a33\/e81\/95b\/a33e8195b556cab2eb77cb1fe34823e3.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2ad\/699\/0b0\/2ad6990b0902fe4509abd44ca44230fe.png\" alt=\"\u0412\u0438\u0434 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432 nuge\" title=\"\u0412\u0438\u0434 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432 nuge\" width=\"1718\" height=\"911\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/2ad\/699\/0b0\/2ad6990b0902fe4509abd44ca44230fe.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2ad\/699\/0b0\/2ad6990b0902fe4509abd44ca44230fe.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0412\u0438\u0434 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432 nuge<\/figcaption><\/div>\n<\/figure>\n<p>\u0422.\u043a. \u044f \u0443\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b, \u0443 \u043c\u0435\u043d\u044f \u043e\u043d\u0438 \u043f\u0440\u043e\u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0438 \u0431\u044b\u043b\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043e\u0442 \u0442\u0443\u0434\u0430.  \u041a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e.<\/p>\n<h2>\u0421\u0431\u043e\u0440\u043a\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c vcpkg + nuget (\u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435)<\/h2>\n<p>\u0418\u0442\u0430\u043a, \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0443 \u043d\u0430\u0441 \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u043d\u0443\u0436\u043d\u044b\u0435 \u043d\u0430\u043c \u043f\u0430\u043a\u0435\u0442\u044b. \u0414\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 cmake \u043d\u0430 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430 \u0438 \u043d\u0430\u0448\u0438 \u0444\u0430\u0439\u043b\u044b vcpkg.json \u0438 vcpkg-configuration.json, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 cmake<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">Level Name ----- ----     1 CMakeLists.txt     1 CMakePresets.json     1 main.cpp     1 vcpkg-configuration.json     1 vcpkg.json<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0414\u043b\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\n<p>toolchainFile &#8212; \u043f\u0443\u0442\u044c \u0434\u043e vcpkg.cmake \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 (\u0433\u0434\u0435 \u0443 \u0432\u0430\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d vcpkg)<\/p>\n<\/li>\n<li>\n<p>vcpkg.json<\/p>\n<\/li>\n<li>\n<p>vcpkg-configuration.json<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f VCPKG_BINARY_SOURCES \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432:<\/p>\n<\/li>\n<\/ul>\n<pre><code>\"VCPKG_BINARY_SOURCES\": \"clear;nuget,http:\/\/home-pc:5555\/v3\/index.json,readwrite;nugettimeout,600\"<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b <a href=\"https:\/\/cmake.org\/cmake\/help\/latest\/manual\/cmake-presets.7.html\" rel=\"noopener noreferrer nofollow\">cmake presets<\/a><\/p>\n<pre><code>   \"configurePresets\": [      {        \"name\": \"windows-base\",        \"hidden\": true,        \"generator\": \"Ninja\",        \"binaryDir\": \"${sourceDir}\/out\/build\/${presetName}\",        \"installDir\": \"${sourceDir}\/out\/install\/${presetName}\",        \"toolchainFile\": \"c:\\\\buildtools\\\\vcpkg\\\\scripts\\\\buildsystems\\\\vcpkg.cmake\",        \"environment\": {          \"VCPKG_BINARY_SOURCES\": \"clear;nuget,http:\/\/home-pc:5555\/v3\/index.json,readwrite;nugettimeout,600\"        },        \"cacheVariables\": {          \"CMAKE_C_COMPILER\": \"cl.exe\",          \"CMAKE_CXX_COMPILER\": \"cl.exe\",          \"VCPKG_TARGET_TRIPLET\": \"x64-windows\"        },        \"condition\": {          \"type\": \"equals\",          \"lhs\": \"${hostSystemName}\",          \"rhs\": \"Windows\"        }      }<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u0432\u043e\u0434\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5f5\/8ae\/fa1\/5f58aefa1a232c113ab275167a2edf4c.png\" alt=\"\u0412\u044b\u0432\u043e\u0434 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\" title=\"\u0412\u044b\u0432\u043e\u0434 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\" width=\"1952\" height=\"880\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5f5\/8ae\/fa1\/5f58aefa1a232c113ab275167a2edf4c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5f5\/8ae\/fa1\/5f58aefa1a232c113ab275167a2edf4c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0412\u044b\u0432\u043e\u0434 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/figcaption><\/div>\n<\/figure>\n<\/div>\n<\/details>\n<p>\u0418\u0442\u0430\u043a, \u043c\u044b \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c: <\/p>\n<ul>\n<li>\n<p>\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u0440\u0435\u0435\u0441\u0442\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 standalone<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u043f\u043e\u0434\u043e\u0431\u043d\u043e conan<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/916620\/\"> https:\/\/habr.com\/ru\/articles\/916620\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<p>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u0434\u043e\u0440\u043e\u0433\u0438\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u0425\u0430\u0431\u0440\u0430! \u042f \u0434\u0430\u0432\u043d\u043e \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0440\u0435\u0435\u0441\u0442\u0440\u0430\u043c\u0438 \u043f\u043e\u0434 \u043a\u043b\u044e\u0447, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0438\u0433\u0434\u0435 \u043d\u0435\u0442 \u0447\u0435\u0442\u043a\u043e\u0439 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u0435. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c, \u043a\u0430\u043a \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u0435\u0441\u0442\u0440\u044b vcpkg \u0438 \u043a\u0430\u043a \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0421\u0442\u0430\u0442\u044c\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u043c\u0435\u043b \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 vcpkg \u0438\u043b\u0438 conan<\/p>\n<p><strong>\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/ttps:\/\/learn.microsoft.com\/ru-ru\/vcpkg\/concepts\/registries\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0440\u0435\u0435\u0441\u0442\u0440\u0430\u043c<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/learn.microsoft.com\/ru-ru\/vcpkg\/concepts\/ports\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e port-\u0444\u0430\u0439\u043b\u0430\u043c<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/learn.microsoft.com\/en-us\/vcpkg\/users\/binarycaching\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043e \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438<\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435<\/strong><\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0435\u0435\u0441\u0442\u0440\u0430<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0432\u043e\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 Qt5\/Boost<\/p>\n<\/li>\n<li>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 standalone \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0438\u043d\u0430\u0440\u0435\u0439 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 nuget<\/p>\n<\/li>\n<li>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c vcpkg + nuget (\u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435)<\/p>\n<\/li>\n<\/ul>\n<h2>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0435\u0435\u0441\u0442\u0440\u0430<\/h2>\n<p><a class=\"anchor\" name=\"new_registry\" id=\"new_registry\"><\/a><\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 Git-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 (\u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u043b\u044e\u0431\u043e\u0439, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f). \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 (<a href=\"https:\/\/github.com\/SaulBerrenson\/registry\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0441\u044b\u043b\u043a\u0430<\/a>)<\/p>\n<p> \u0414\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b baseline.json \u0432 \u043f\u0430\u043f\u043a\u0435 versions. <\/p>\n<details class=\"spoiler\">\n<summary>versions\/baseline.json<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">{   \"default\": {   } } <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041a\u043e\u043c\u043c\u0438\u0442\u0438\u043c. \u041f\u0443\u0448\u0438\u043c. \u041f\u0443\u0441\u0442\u043e\u0439 \u0440\u0435\u0435\u0441\u0442\u0440 \u0441\u043e\u0437\u0434\u0430\u043d. \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0437 \u043f\u0430\u043f\u043a\u0438 <a href=\"https:\/\/github.com\/SaulBerrenson\/registry\/tree\/main\/scripts\" rel=\"noopener noreferrer nofollow\">scripts<\/a>.<\/p>\n<h2>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0432\u043e\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/h2>\n<p>\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e port-\u0444\u0430\u0439\u043b\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u0430.<\/p>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 Boost \u0432\u0435\u0440\u0441\u0438\u0438 1.87. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f 1.88, \u043e\u0434\u043d\u0430\u043a\u043e \u0435\u0451 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0432 vcpkg \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u044b\u043c. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u044f \u043d\u0430\u043c\u0435\u0440\u0435\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 qt5-base \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u043d\u0430 \u0437\u0435\u0440\u043a\u0430\u043b\u0435 \u042f\u043d\u0434\u0435\u043a\u0441\u0430. \u0414\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0446\u0435\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f:<\/p>\n<ul>\n<li>\n<p> \u041f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0444\u043e\u0440\u043a \u0444\u0430\u0439\u043b\u0430 port qt5-base.<\/p>\n<\/li>\n<li>\n<p> \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b port \u0434\u043b\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Boost.<\/p>\n<\/li>\n<\/ul>\n<h2>Port qt5-base<\/h2>\n<p>\u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u044f \u0432\u0437\u044f\u043b \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 port qt5-base. \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0438\u0437 vcpkg\/ports \u0432 \u043d\u0430\u0448 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438 port\/qt5-base<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f<\/summary>\n<div class=\"spoiler__content\">\n<p>\u251c\u2500\u2500\u2500ports<br \/> \u2502   \u251c\u2500\u2500\u2500boost<br \/> \u2502   \u2514\u2500\u2500\u2500qt5-base<br \/> \u2502       \u251c\u2500\u2500\u2500cmake<br \/> \u2502       \u2514\u2500\u2500\u2500patches<br \/> \u251c\u2500\u2500\u2500scripts<br \/> \u251c\u2500\u2500\u2500share<br \/> \u2514\u2500\u2500\u2500versions<\/p>\n<\/div>\n<\/details>\n<p>\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f (\u0444\u0430\u0439\u043b registry\/ports\/qt5-base\/cmake\/<a href=\"https:\/\/github.com\/SaulBerrenson\/registry\/blob\/main\/ports\/qt5-base\/cmake\/qt_download_submodule.cmake\" rel=\"noopener noreferrer nofollow\">qt_download_submodule.cmake<\/a><\/p>\n<pre><code>    set(FULL_VERSION \"${QT_MAJOR_MINOR_VER}.${QT_PATCH_VER}\")     set(ARCHIVE_NAME \"${NAME}-everywhere-opensource-src-${FULL_VERSION}.tar.xz\")     set(URLS         \"https:\/\/mirror.yandex.ru\/mirrors\/qt.io\/${QT_MAJOR_MINOR_VER}\/${FULL_VERSION}\/submodules\/${ARCHIVE_NAME}\"     )<\/code><\/pre>\n<p>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043f\u0430\u043a\u0435\u0442\u0435:<\/p>\n<ul>\n<li>\n<p>\u041a\u043e\u043c\u043c\u0438\u0442\u0438\u043c \u0444\u0430\u0439\u043b\u044b \u0432 \u043f\u0430\u043f\u043a\u0435 ports<\/p>\n<\/li>\n<li>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u0440\u0442-\u0444\u0430\u043b\u044b (scripts\/format-ports.py)<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">cd scripts py format-ports.py<\/code><\/pre>\n<ul>\n<li>\n<p>\u041a\u043e\u043c\u043c\u0438\u0442\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0438 \u0441\u043d\u043e\u0432\u0430 \u043a\u043e\u043c\u043c\u0438\u0442\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<pre><code>cd scripts py update-versions.py<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u0432\u043e\u0434\u0430<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width\">\n<div><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u0441\u0438\u0439<\/figcaption><\/div>\n<\/figure>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0448\u0430\u0433\u043e\u0432 \u0443 \u0432\u0430\u0441 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b\u0435 \u043f\u0430\u043f\u043a\u0438 \u0438 \u0444\u0430\u0439\u043b\u044b \u0432 versions (\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0445 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0443\u043a\u0430\u043c\u0438!)<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 versions\/q-\/qt5-base.json<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">{   \"versions\": [     {       \"git-tree\": \"e04eef6f4c169b57fd43a68a1a3d2bd9ef6d6ec2\",       \"version\": \"5.15.16\",       \"port-version\": 4     }   ] } <\/code><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u0430\u043c \u0432\u0430\u0448\u0435\u0433\u043e port-\u0444\u0430\u0439\u043b\u0430.<\/p>\n<\/div>\n<\/details>\n<h3>Port boost<\/h3>\n<p>\u0412\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0448\u0430\u0433\u0438 \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044e \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 qt5-base \u0438 \u0437\u0430\u043e\u0441\u0442\u0440\u044f\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043d\u0438\u0445 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043a\u0440\u0430\u0442\u043a\u043e. \u041c\u043e\u0439 <a href=\"https:\/\/github.com\/SaulBerrenson\/registry\/tree\/main\/ports\/boost\" rel=\"noopener noreferrer nofollow\">portfile <\/a>\u0431\u0443\u0434\u0435\u0442<\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 1 \u043f\u043e\u0440\u0442-\u0444\u0430\u0439\u043b\u0430<\/p>\n<\/li>\n<li>\n<p>\u041d\u0443\u0436\u043d\u043e\u0439 \u043c\u043d\u0435 \u0432\u0435\u0440\u0441\u0438\u0438<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b 2 \u0444\u0438\u0447\u0438 &#8212; \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e static, \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e shared<\/p>\n<\/li>\n<\/ul>\n<details class=\"spoiler\">\n<summary>\u043c\u043e\u0439 portfile.cmake<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cmake\"> string(REPLACE \".\" \"-\" ARCHIVE_VERSION ${VERSION})  set(BOOST_ARVHICE_FILENAME boost-${ARCHIVE_VERSION}.zip)  vcpkg_download_distfile(     ARCHIVE_ZIP     URLS https:\/\/github.com\/boostorg\/boost\/releases\/download\/boost-${VERSION}\/boost-${VERSION}-cmake.7z     FILENAME ${BOOST_ARVHICE_FILENAME}     SHA512 994356c84f4b96e263087eff40e53298791e7d72c6d24dd2cc3988c32edaa880180d39401504befe5c1b197ebead77c855452c608c6560a42f50f5a3016e0add )  vcpkg_extract_source_archive(     SOURCE_PATH     ARCHIVE \"${ARCHIVE_ZIP}\" )  string(COMPARE EQUAL \"${VCPKG_LIBRARY_LINKAGE}\" \"dynamic\" BUILD_SHARED) string(COMPARE EQUAL \"${VCPKG_CRT_LINKAGE}\" \"static\" BUILD_STATIC_CRT)  if(BUILD_SHARED)     set(OPTION_BUILD_SHARED_LIBS ON) else()     set(OPTION_BUILD_SHARED_LIBS OFF) endif()  if(BUILD_STATIC_CRT)     set(BOOST_RUNTIME_LINK static) else()     set(BOOST_RUNTIME_LINK shared) endif()   if(\"force-static\" IN_LIST FEATURES)     set(OPTION_BUILD_SHARED_LIBS OFF) #rewrite options     vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif()  if(\"force-shared\" IN_LIST FEATURES)     set(OPTION_BUILD_SHARED_LIBS ON) #rewrite options     vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif()   set(BOOST_EXCLUDE_COMPONENTS test log wave stacktrace python) list(JOIN BOOST_EXCLUDE_COMPONENTS \"\\\\;\" BOOST_EXCLUDE_LIBRARIES)  message(STATUS \"Replace BoostConfig with fixed search lib_DIR\") configure_file(${CMAKE_CURRENT_LIST_DIR}\/BoostConfig.cmake.in ${SOURCE_PATH}\/tools\/cmake\/config\/BoostConfig.cmake USE_SOURCE_PERMISSIONS @ONLY)  # disable check LINUX_VERSION_CODE in ASTRA if(UNIX)         file(COPY_FILE ${CMAKE_CURRENT_LIST_DIR}\/config.hpp ${SOURCE_PATH}\/libs\/asio\/include\/boost\/asio\/detail\/config.hpp) endif()  message(STATUS \"Building boost with BUILD_SHARED_LIBS=${OPTION_BUILD_SHARED_LIBS}, CRT=${BOOST_RUNTIME_LINK} EXCLUDE:${BOOST_EXCLUDE_COMPONENTS}\")  vcpkg_cmake_configure(     SOURCE_PATH ${SOURCE_PATH}     WINDOWS_USE_MSBUILD     OPTIONS         -DBUILD_SHARED_LIBS=${OPTION_BUILD_SHARED_LIBS}         -DBOOST_RUNTIME_LINK=${BOOST_RUNTIME_LINK}         -DBOOST_EXCLUDE_LIBRARIES=${BOOST_EXCLUDE_LIBRARIES}         -DBOOST_ENABLE_PYTHON=OFF         -DBUILD_TESTING=OFF )  vcpkg_cmake_install()  vcpkg_cmake_config_fixup(PACKAGE_NAME boost CONFIG_PATH lib\/cmake\/Boost-${VERSION} DO_NOT_DELETE_PARENT_CONFIG_PATH) #main config  vcpkg_copy_pdbs()  # Fixup configs for debug and release function(_fixup_boost_config_for_dir_ target_dir)      message(STATUS \"Fixup boost configs for dir: ${target_dir}\")     file(GLOB CONFIG_LIST LIST_DIRECTORIES true ${target_dir}\/boost_*)      foreach(dir ${CONFIG_LIST})         IF(IS_DIRECTORY ${dir})              string(REPLACE \"${target_dir}\/\" \"\" dir_name \"${dir}\")             #string(REPLACE \"-1.83.0\" \"\" PKG_CONFIG_NAME ${dir_name})             string(REPLACE \"-${VERSION}\" \"\" PKG_CONFIG_NAME ${dir_name})             message(STATUS \"try fixup: ${dir_name} - ${PKG_CONFIG_NAME}\")              vcpkg_cmake_config_fixup(PACKAGE_NAME ${PKG_CONFIG_NAME} CONFIG_PATH lib\/cmake\/${dir_name} DO_NOT_DELETE_PARENT_CONFIG_PATH)         ELSE()             CONTINUE()         ENDIF()     endforeach()      unset(CONFIG_LIST) endfunction()  _fixup_boost_config_for_dir_(${CURRENT_PACKAGES_DIR}\/debug\/lib\/cmake) _fixup_boost_config_for_dir_(${CURRENT_PACKAGES_DIR}\/lib\/cmake)  file(REMOVE_RECURSE \"${CURRENT_PACKAGES_DIR}\/debug\/include\") file(REMOVE_RECURSE \"${CURRENT_PACKAGES_DIR}\/debug\/lib\/cmake\")  file(REMOVE_RECURSE \"${CURRENT_PACKAGES_DIR}\/lib\/cmake\")   file(INSTALL \"${SOURCE_PATH}\/LICENSE_1_0.txt\" DESTINATION \"${CURRENT_PACKAGES_DIR}\/share\/${PORT}\" RENAME copyright) <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0412\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 <a href=\"https:\/\/github.com\/SaulBerrenson\/registry\/tree\/main\/ports\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438<\/a><\/p>\n<p>\u041f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c \u0432\u0441\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044e \u0432\u0435\u0440\u0441\u0438\u0439 \/ \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432, \u043a\u0430\u043a \u0432 qt5-base<\/p>\n<h2>\u0421\u0431\u043e\u0440\u043a\u0430 standalone \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/h2>\n<p>\u0421 2024 \u0433\u043e\u0434\u0430 vcpkg \u043d\u0430\u0443\u0447\u0438\u043b\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c standalone \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f. \u041e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u043e\u0442\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f vcpkg.<\/p>\n<p>\u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430:<\/p>\n<ul>\n<li>\n<p>vcpkg.json &#8212; \u0444\u0430\u0439\u043b \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439<\/p>\n<\/li>\n<li>\n<p>vcpkg-configuration.json &#8212; \u0444\u0430\u0439\u043b \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0440\u0435\u0435\u0441\u0442\u0440\u043e\u0432, \u043e\u0442\u043a\u0443\u0434\u0430 \u0447\u0442\u043e \u0431\u0440\u0430\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0431\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 <a href=\"https:\/\/github.com\/SaulBerrenson\/registry\/blob\/main\/scripts\/make-vcpkg-configuration.py\" rel=\"noopener noreferrer nofollow\">make-vcpkg-configuration.py<\/a>. \u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0440\u0435\u0435\u0441\u0442\u0440\u0443 \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u0441\u0435 \u0432\u0435\u0440\u0441\u0438\u0438, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044f \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0441 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u043e\u0439 \u043a \u043a\u043e\u043c\u0438\u0442\u0443 \u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044e.<\/p>\n<details class=\"spoiler\">\n<summary>\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">cd scripts py make-vcpkg-configuration.py<\/code><\/pre>\n<p>\u0411\u0443\u0434\u0443\u0442 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/figcaption><\/div>\n<\/figure>\n<details class=\"spoiler\">\n<summary>vcpkg.json<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">{     \"dependencies\": [],     \"overrides\": [         {             \"name\": \"boost\",             \"version\": \"1.87.0#2\"         },         {             \"name\": \"qt5-base\",             \"version\": \"5.15.16#4\"         }     ] }<\/code><\/pre>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>vcpkg-configuration.json<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">{     \"default-registry\": {         \"kind\": \"git\",         \"repository\": \"https:\/\/github.com\/microsoft\/vcpkg.git\",         \"baseline\": \"3425f537d2f01c761d2d2cff59a7577eb4f568c0\"     },     \"registries\": [         {             \"kind\": \"git\",             \"repository\": \"https:\/\/github.com\/SaulBerrenson\/registry.git\",             \"reference\": \"main\",             \"packages\": [                 \"boost\",                 \"qt5-base\"             ],             \"baseline\": \"f3b8c64ae49a1dfd4cd845767e7d14f6f03bd09d\"         }     ] }<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u042d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0440\u0443\u043a\u0430\u043c\u0438, \u043d\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u043f\u0440\u043e\u0449\u0435 \u0438 \u044d\u0442\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435.<\/p>\n<\/div>\n<\/details>\n<p>\u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0440\u0435\u0435\u0441\u0442\u0440 \u0442\u0435\u043c\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0442\u0438\u043c \u0432\u0438\u0434\u0435\u0442\u044c \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438<\/p>\n<details class=\"spoiler\">\n<summary>\u043f\u0440\u0438\u043c\u0435\u0440 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (vcpkg.json)<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">{     \"dependencies\": [ {             \"name\": \"boost\",             \"features\": [\"force-static\"]         } ],     \"overrides\": [         {             \"name\": \"boost\",             \"version\": \"1.87.0#2\"         },         {             \"name\": \"qt5-base\",             \"version\": \"5.15.16#4\"         }     ] }<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0443\u0434\u043e\u0431\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c \u0442\u0443\u0434\u0430:<\/p>\n<ul>\n<li>\n<p>vcpkg.json<\/p>\n<\/li>\n<li>\n<p>vcpkg-configuration.json<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/SaulBerrenson\/registry\/blob\/main\/scripts\/vcpkg_manager.py\" rel=\"noopener noreferrer nofollow\">vcpkg_manager.py<\/a>  (\u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0439)<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">py vcpkg_manager.py --cache local --triplet x64-windows --steps install export  PS C:\\projects\\article\\build\\env\\v142_x64&gt; Get-ChildItem -Recurse -Depth 1 | Select-Object @{Name=\"Level\";Expression={($_.FullName.Split('\\').Count - (Get-Location).Path.Split('\\').Count)}}, Name, FullName | Format-Table  Level Name         FullName ----- ----         --------     1 installed    C:\\projects\\article\\build\\env\\v142_x64\\installed     1 scripts      C:\\projects\\article\\build\\env\\v142_x64\\scripts     1 .vcpkg-root  C:\\projects\\article\\build\\env\\v142_x64\\.vcpkg-root     1 vcpkg.exe    C:\\projects\\article\\build\\env\\v142_x64\\vcpkg.exe     2 vcpkg        C:\\projects\\article\\build\\env\\v142_x64\\installed\\vcpkg     2 x64-windows  C:\\projects\\article\\build\\env\\v142_x64\\installed\\x64-windows     2 buildsystems<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-462371","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/462371","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=462371"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/462371\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=462371"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=462371"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=462371"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}