【问题标题】:How can I tell meson in which directories to look for dependencies?如何告诉介子在哪些目录中查找依赖项?
【发布时间】:2020-03-24 16:36:30
【问题描述】:

我从CMake 来到meson。 我喜欢使用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])

【问题讨论】:

    标签: c++ cmake conda build-system meson-build


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 应该注意这不适用于每个conda 包,因为某些包不提供.pc 文件。
    【解决方案2】:

    介子接收参数

    --pkg-config-path path
    

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

    添加

    spdlog = dependency('spdlog')
    

    只要 .pc 文件在 path

    中就会找到 spdlog

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-11
      • 2021-05-07
      • 1970-01-01
      • 2017-07-03
      • 2019-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多