我如何告诉介子在哪个目录中查找依赖项?

How can I tell meson in which directories to look for dependencies?

我从 CMakemeson。 我喜欢使用 conda 在孤立的环境中工作。这样我就可以控制为每个项目安装哪些包。

现在,在 cmake 中,我将传递 -DCMAKE_FIND_ROOT_PATH=$CONDA_PREFIX 以便将搜索过程置于不同的目录(在我的例子中是 conda env)

所以我的问题是如何在 meson 上实现相同的效果?

这是我的小meson.build供参考:

project('foo', 'cpp')

cpp = meson.get_compiler('cpp')
spdlog = cpp.find_library('spdlog')

executable('foo',
  'src/fact.cpp',
  dependencies : [spdlog])

meson 足够聪明,可以在 conda env 中找到包,假设您在所述环境中安装了 pkg-configcmake

此外 - 添加外部依赖项的正确方法是使用 dependency('spdlog') 而不是 find_library

所以固定的 meson.build 应该是这样的:

project('foo', 'cpp')

spdlog = dependency('spdlog')

executable('foo',
  'src/fact.cpp',
  dependencies : [spdlog])

介子接收参数

--pkg-config-path path

这会将 path 添加到 pkg-config 搜索路径。

添加

spdlog = dependency('spdlog')

只要.pc文件在path

就会找到spdlog