Vcpkg:引入功能包的安装选项

我们很高兴宣布vcpkg在版本0.0.103中的一个新特性:特性包。

null

Vcpkg是一个包管理器 帮助获取和建立Windows上的开源库;VCPKG目前提供了超过600个C++库,用于VS2017和VS2015。

使用功能包,您可以指定不同的选项(功能),从而可以更好地控制如何构建库。许多开源库在构建时提供了不同的选项和特性供选择。例如,您可能希望使用CUDA构建OpenCV以利用GPU,或者使用MSMPI构建HDF5以启用并行执行。以前,您需要编辑端口文件以使用给定的一组选项进行构建。使用features包,可以在安装时轻松指定这些选项。

如何使用功能包

我们通过以下语法支持可选软件包: vcpkg安装库[功能]

vcpkg install hdf5 // install without parallel support>vcpkg install hdf5[parallel] // install with parallel support

hdf5现在公开选项,因此search命令将显示更多信息:

> vcpkg search hdf5hdf5 1.10.1-1 HDF5 is a data model, library, …hdf5[parallel] parallel support for HDF5

现在hdf5已经安装并激活了parallel选项,因此list命令也将显示更多信息: >vcpkg list hdf5hdf5:x86-windows 1.10.1-1 HDF5 is a data model, …hdf5[parallel]:x86-windows with parallel support for HDF5

请注意,每个功能包将列在单独的一行中。

幕后

控制文件中列出了给定库的所有功能包。

此文件还列出了每个功能包的依赖项。

例如: Source: hdf5Version: 1.10.1-1Description: HDF5 is a data model, library, and file format for …Build-Depends: zlib, szip Feature: parallelDescription: parallel support for HDF5Build-Depends: msmpi 库可以支持任意数量的功能。

启用功能包意味着在删除或更新包时会有更多的细节。我们努力寻找正确的算法来处理边缘情况的集合。例如,安装功能可能意味着安装依赖项或以某种方式重建这些依赖项。 > vcpkg install hdf5[parallel]The following packages will be built and installed:hdf5[core,parallel]:x86-windows* msmpi[core]:x86-windows* szip[core]:x86-windowsAdditional packages (*) will be modified to complete this operation.

Vcpkg维护人员,现在可以向端口文件添加选项

使用功能包,您现在可以在创建端口文件时定义不同的选项。现在正是更新端口文件并为库启用选项的时候。

为了更新您的端口文件,您可以使用CMake指令对功能作出反应 "if(featurename IN_LIST FEATURES)" 以下是一些资源:

在HDF5中激活并行

Cuda和OpenCV选项

带Python的VTK

文档

我们已经更新了 关于功能包的文档

感谢Daniel Shaw为实现此功能所做的努力和奉献。

一如既往,您的反馈和评论对我们来说非常重要,请在 github 或者直接联系我们 vcpkg@microsoft.com 任何意见和建议。

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