如何使用vpckg manifest文件安装静态库版本?



我正试图弄清楚如何配置我的清单文件,以使用vcpkg的新清单功能编译我的库的静态版本。我当前的清单文件是:

{
"name": "myProject",
"version-string": "v0.1",
],
"dependencies": [
{
"name": "curl",
"features" : [
"openssl"
],
"platform" : "(windows & x64 & static)"
}
]
}

,但这导致没有安装。选项"platform" : "windows"安装为x86-windows三元组,但我不能找出x64-windows-static的正确参数。

我也很好奇——有没有一种方法可以为所有库声明一个三元组,而不是让每个库都成为一个JSON对象并具体列出它?

作为vcpkg新发布的特性,manifest实际上正在开发中。你可以参考微软博客关于manifest。

此外,还提供了Github上的manifest示例供参考。

下面是一个已经存在的端口控制文件被重写为vcpkg的例子。json文件:

Source: pango
Version: 1.40.11-6
Homepage: https://ftp.gnome.org/pub/GNOME/sources/pango/
Description: Text and font handling library.
Build-Depends: glib, gettext, cairo, fontconfig, freetype, harfbuzz[glib] (!(windows&static)&!osx)

{
"name": "pango",
"version-string": "1.40.11",
"port-version": 6,
"homepage": "https://ftp.gnome.org/pub/GNOME/sources/pango/",
"description": "Text and font handling library.",
"dependencies": [
"glib",
"gettext",
"cairo",
"fontconfig",
"freetype",
{
"name": "harfbuzz",
"features": [ "glib" ],
"platform": "!(windows & static) & !osx"
}
]
}

最后,关于为所有库声明一个三元组的问题,欢迎将这个问题提交给Microsoft DC。

您误解了清单模式。

{
"name": "myProject",
"version-string": "v0.1",
],
"dependencies": [
{
"name": "curl",
"features" : [
"openssl"
],
"platform" : "(windows & x64 & static)"
}
]
}

上面的代码意味着只有在使用三元组x64-windows-static时才需要这个库。

你所要做的就是在配置你的项目时指定正确的三元组。

例如CMake项目。在第一个project()指令之前设置变量VCPKG_TARGET_TRIPLETx64-windows-static:

set(VCPKG_TARGET_TRIPLET x64-windows-static)
project ("myProject")

更多信息,请参考buildsystems.

相关内容

  • 没有找到相关文章

最新更新