c++ - 如何在介子构建中指定依赖版本?
问题描述
我有两个 C++ 项目,都使用介子构建。一个是另一个的子项目:
noise-status
是一个依赖noise-service
我正在noise-status
使用包装文件导入子项目:
[wrap-git]
url = http://eng-server:9090/yxia/noise-status.git
revision = master
在noise-service
介子构建文件中,我指定了我想要使用的这个子项目的版本(noise-service
标签最高为 0.5.0):
noise_status_dep = dependency('noise-status', required: false, version: '0.2.0')
但这显然不起作用,它总是将最新版本noise-status
作为子项目拉取。我应该如何修改此设置以提取子项目的特定版本?
解决方案
包装文件在您的情况下指定导入的版本。目前它会选择master
. 您必须更改revision = master
为要导入的标签。
从手册:
revision
- 要结帐的修订名称。必须是:VCS 的 checkout 命令的有效值(例如 git 标签),或(对于 git)head
跟踪上游的默认分支。必需的。
因此,如果您希望标签0.2.0
将您的wrap
文件更改为:
[wrap-git]
url = http://eng-server:9090/yxia/noise-status.git
revision = 0.2.0
dependency
声明仍然会这样工作:
noise_status_dep = dependency('noise-status', required: false)
如果您也添加provide
关键字,您可以声明一个可以在依赖项声明中引用的单独名称,例如:
[wrap-git]
url = http://eng-server:9090/yxia/noise-status.git
revision = 0.2.0
[provide]
dependency_names = noise-status-0.2.0
然后您可以使用该名称声明一个依赖项:
noise_status_dep = dependency('noise-status-0.2.0', required: false)
推荐阅读
- c# - 手动编辑后 TextArea 对更改没有反应
- java - Java作业问题我一直没能解决
- javascript - 有没有办法对我需要的 javascript 文件列表进行分组?
- amazon-web-services - Lambda 不在 DynamoDB 中创建数据
- swift - 使列表只更新一次
- r - Shinyapp 中的错误:分组因子必须恰好有 2 个级别
- java - 我应该将 log4j2.properties 文件保存在哪里?
- excel - 我想使用 Excel(以管理员身份运行)作为 Getobject。(vbscript)
- c++ - 具有不同字节顺序实现的位字段的分配是特定的
- java - kotlin 将 bytearray 转换为 String 数据崩溃