Vcpkg:2019.06更新

VCPKG的2019.06个更新,现在可以在Windows、Linux和Mac上帮助你管理C和C++库。这是我们第一次创建 在我们的GitHub存储库上发布vcpkg . 此更新旨在为您带来一个月来vcpkg的新功能和改进的摘要。2019.06更新涵盖6月份。

null

此版本包括许多新端口和三元组更新,包括覆盖选项、端口贡献者的改进和新文档。有关此版本改进的完整列表,请查看我们的 GitHub发行说明 .

端口

在过去的几个月里,vcpkg的贡献有了很大的增长,现在目录中提供了1000多个包。通过在中搜索库名称,可以查看可用的库 GitHub repo ports文件夹 或者使用 vcpkg search命令 .

六月份我们新增了44个港口。一些值得注意的补充包括: bdwgc公司 , cJSON公司 , 最大的 , 伊默尔 , json-c格式 ,和 兹迪斯 . 这些端口在各自的GitHub repos上有1K+个星。您可以在[发行说明的新端口部分]()中查看新端口的完整列表。

除了新的端口,我们还更新了291个现有端口。该版本的显著更新包括 端口“主页” .

端口主页

作为我们基础设施工作的一部分,您现在可以查看某个港口的“主页”。这使您可以通过网站链接轻松查看港口的官方主页。以Abseil港为例。如果您导航到/ports/abseil/CONTROL,您将看到“主页: https://github.com/abseil/abseil-cpp “链接到官方的Abseil页面。

覆盖端口

vcpkg命令行界面允许您轻松地搜索、安装和维护库。我们添加了- -overlay-ports 选项,允许您使用备用版本覆盖端口并创建专用端口。

让我们看一个例子,您正在使用OpenCV进行计算机视觉项目。您希望使用vcpkg获取OpenCV和其他软件包。您的团队专门使用OpenCV的3.0版本,但是vcpkg提供了3.4.3版本。即使该版本的OpenCV在vcpkg中不可用,您也可以创建一个专用端口。

假设您继续创建一个私有的GitHub repo,并签入要保留的端口,包括opencv3.0及其特定的依赖库,这些库在当前vcpkg中可能不可用。然后,您可以向您的团队提供克隆您的私有回购的链接。

在本地创建自定义端口目录并提交更改:

~/vcpkg$ mkdir vcpkg-custom-ports
~/vcpkg$ cd vcpkg-custom-ports
~/vcpkg/vcpkg-custom-ports$ git init
~/vcpkg/vcpkg-custom-ports$ cp -r %VCPKG_ROOT%/ports/opencv .
~/vcpkg/vcpkg-custom-ports$ git add .
~/vcpkg/vcpkg-custom-ports$ git commit -m "[opencv] Add OpenCV 3.0 port"
~/vcpkg/vcpkg-custom-ports$ git remote add origin https://github.com/<My GitHub username>/vcpkg-custom-ports.git
~/vcpkg/vcpkg-custom-ports$ git push -u origin master

现在,您和您的团队可以使用OpenCV的3.0版本,通过以下方式将您的项目与vcpkg结合使用:

~/vcpkg/vcpkg-custom-ports$ git clone https://github.com/<My GitHub username>/vcpkg-custom-ports.git
~/vcpkg/vcpkg-custom-ports$ ./vcpkg update --overlay-ports=./vcpkg-custom-ports
~/vcpkg/vcpkg-custom-ports$ ./vcpkg upgrade --no-dry-run --overlay-ports=./vcpkg-custom-ports

请注意,您可能需要更新vcpkg以使用最新的命令行选项。您可以在Windows上通过 .ootstrap-vcpkg.bat 或通过 ./bootstrap-vcpkg.sh .

这允许您升级软件包并保留项目所需的旧版本的OpenCV。

如上面的示例所示,您可以使用 --overlay-ports vcpkg install , vcpkg update , vcpkg upgrade , vcpkg export ,和 vcpkg depend-info 命令。在我们的 覆盖端口文档 .

请注意,虽然覆盖端口可以帮助覆盖端口版本和创建专用端口,但这是我们不断改进vcpkg版本控制可用性的工作的一部分。请继续关注未来关于vcpkg版本控制最佳实践的文章!

三胞胎

默认情况下,Vcpkg提供许多三元组(目标环境)。上个月,我们集中精力增加Linux上可用的端口数量,并为Linux和Windows Linux子系统(WSL)创建端口改进。我们现在有823个可用于Linux的端口,并为Linux和WSL更新了150多个端口。

以下是每个三元组端口的当前列表:

三胞胎 可用端口
x64 osx系列 755
x64 linux系统 823
x64窗口 1006
x86窗口 977
x64 windows静态 895
arm64窗口 654
x64超宽带 532
arm超宽带 504

没看到你想要的三胞胎吗?你可以很容易地添加自己的三胞胎。有关添加三胞胎的详细信息,请参阅我们的 文档 .

重叠三胞胎

作为vcpkg命令行更新的一部分,我们还添加了 --overlay-triplets 选项。如果您有定制的三元组需要,此选项特别有用。您可以使用选项,类似于 --overlay-ports ,以使用自定义规范重写三胞胎并创建自定义三胞胎。

例如,一部分Linux用户需要完全动态的库,而x64linux三元组只构建静态库。基于 x64 linux三元组 可以创建来构建动态库。要解决此问题:

首先,创建一个包含自定义三胞胎的文件夹:

~/vcpkg$ mkdir ../custom-triplets

然后,创建自定义三元组文件:

~/vcpkg$ cp ./triplets/x64-linux.cmake ../custom-triplets/x64-linux-dynamic.cmake

并将自定义triplets/x64-linux-dynamic.cmake文件修改为:

set(VCPKG_TARGET_ARCHITECTURE x64) 
set(VCPKG_CRT_LINKAGE dynamic) 
set(VCPKG_LIBRARY_LINKAGE dynamic) 
set(VCPKG_CMAKE_SYSTEM_NAME Linux)

* 请注意 VCPKGu库u链接从静态到动态。

最后,通过传递 --overlay-triplets 选项:

~/vcpkg$ vcpkg install opencv:x64-linux-dynamic --overlay-triplets=../custom-triplets

对端口贡献者的改进

我们还对vcpkg基础设施进行了改进,包括公共CI系统、检查功能和端口的“主页”字段。

客户智能系统

我们现在已经通过azuredevops管道进行了公共CI测试,这些管道为vcpkggithub repo的所有pr运行。CI系统允许贡献者在几分钟内直接、自动地访问Linux、Windows和Mac上PRs的故障日志。例如:

PR with passing and failing checks GitHub badge with passing and failing checks

支票上仍会有徽章表明 通过/失败,如“x”或“复选标记”所示。

如果检查失败,您现在可以深入了解详细信息:

PR check details in Azure DevOps

进一步进入Azure DevOps,您可以在摘要选项卡中获得更多信息,例如下载所有故障日志的zip文件以及相关更改的快速描述:

Failed check details in Summary page of Azure DevOps

我们希望新的CI系统能改善您向vcpkg提交PRs的体验!

检查功能

Vcpkg_check_features 是一个新的portfile函数,用于检查一个或多个功能是否是包安装的一部分。在vcpkg中,我们使用特性来启用库提供的可选功能。用户请求安装vcpkg。例如:

~/vcpkg$ vcpkg install opencv[cuda]

install命令启用对OpenCV的可选CUDA支持。

Vcpkg_check_features 通过缩短CMake portfile脚本中所需的语法,简化了vcpkg贡献者的portfile创建过程。以前,您需要指定端口中包括哪些功能:

if(<feature> IN_LIST FEATURES)
   set(<var> ON)else()&nbsp;&nbsp; 
   set(<var> OFF)
endif()

现在,您可以简单地编写以下内容:

vcpkg_check_features(<feature> <output_variable>)

了解有关使用的更多信息 vcpkg_check_features 在您的端口文件中 vcpkg_check_features 文档 .

端口的“主页”字段

我们还为控件添加了一个可选的“Homepage”字段。这意味着控制文件现在可能包含一个“主页”字段,链接到港口的官方网站。主页字段旨在帮助您更轻松地找到您正在使用的端口的来源/位置。

文档

我们还更新了文档以反映这些新变化。请查看以下新文档,了解有关本文中概述的一些更新以及其他几个方面的更多信息:

谢谢你

感谢所有创建vcpkg的人!我们现在总共有639个贡献者。在此版本中,我们要感谢6月份对代码进行了更改的24位贡献者:

塞尼特 马丁尼
科里安 马丁-s
驱动器1998 姆洛斯科特
企业会计准则197 myd7349
埃夫波布 纽曼-A
法韦科斯 过期
香港航空公司 普拉维奇
贾斯旺 超级假发
约苏戈麦斯 塔奇拉
跳伞 鞑靼喇嘛
勒布朗 塔德豪斯
马尔基安霍兰德 安南约文

告诉我们你的想法

安装vcpkg ,试一试,让我们知道你的想法。如果您遇到任何问题,或有任何建议,请及时报告 GitHub存储库的问题部分 .

我们可以通过下面的评论或电子邮件联系我们(vcpkg@microsoft.com). 你也可以在Twitter上找到我们的团队和我 @视觉 @塔拉穆斯福特 .

© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞0 分享