如何在介子构建中指定依赖版本?
how to specify version of dependency in meson build?
我有两个 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
的最新版本作为子项目。我应该如何修改此设置以拉取特定版本的子项目?
wrap 文件在您的案例中指定了导入的版本。目前它将选择master
。您必须将 revision = master
更改为您要导入的标签。
来自manual:
revision
- name of the revision to checkout. Must be either: a valid
value (such as a git tag) for the VCS's checkout command, or (for git)
head
to track upstream's default branch. Required.
因此,如果您想要标签 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++ 项目,都使用介子构建。一个是另一个的子项目:
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
的最新版本作为子项目。我应该如何修改此设置以拉取特定版本的子项目?
wrap 文件在您的案例中指定了导入的版本。目前它将选择master
。您必须将 revision = master
更改为您要导入的标签。
来自manual:
revision
- name of the revision to checkout. Must be either: a valid value (such as a git tag) for the VCS's checkout command, or (for git)head
to track upstream's default branch. Required.
因此,如果您想要标签 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)