如何用介子包含库?

How to include library with meson?

我想将 INHI library(也使用介子)添加到我的项目中,但我不知道如何添加。

项目树:

Project/
- meson.build
- src/
- - meson.build
- - inih/
- - main.c

根 meson.build 包含:

project('test', 'c')
subdir('src')

src/meson.build

executable('main', 'main.c')

要在 main.c 中使用 inih,我必须在 meson.build 中添加什么?

谢谢!

介子有subprojects的概念。

  1. 在项目的顶层创建一个 subprojects 目录(与 meson.build 相同的级别)。
  2. subprojects 目录中为您的 dependency 创建一个 wrap 文件,并将其命名为 inih.wrap,内容为:
[wrap-git]
url = https://github.com/benhoyt/inih
revision = head

这告诉介子使用 git 得到一个 dependency

  1. 在您的 meson.build 中将 inih 集成为 dependency,如下所示:
inih_sp = subproject('inih')
inih_dep = inih_sp.get_variable('inih_dep')
...
executable('main', 'main.c',dependencies:[inih_dep])

编辑: 另一种方法是使用 wrap-file 而不是 wrap-git。在这种情况下,只有第二项会发生变化。只需找到您的库 here 并将其放入 subprojects 目录。

有关详细信息,请查看 Wrap dependency system manual