有没有办法在介子中使用柯南包?

is there any way to use conan package in meson?

我们可以使用柯南介子构建系统。但是我找不到任何关于如何在 meson.build 中添加 conan 包作为依赖项的文档。在cmake中非常简单,我们可以简单地使用conan_cmake_run。我怎样才能在介子中做类似的事情?

这是我做的:

run_command('conan', 'install', '--install-folder', meson.build_root(), meson.source_root(), check: true)

由于介子还没有支持柯南,需要我们自己桥接。还好很简单,举个例子:


conan_pkgs= {
    'fmt':'fmt/5.3.0@',  # <- Must contain @, otherwise Conan will think it is a path
    # you can add more ...
}
deps=[]
foreach pkg_name, conan_ref : conan_pkgs
    module_path = meson.current_build_dir() / 'conan-cmake' / pkg_name
    run_command('conan','install',conan_ref, '-if',module_path,
        '-g','cmake_find_package', check: true)
    deps += dependency(pkg_name, method: 'cmake', cmake_module_path: module_path)
endforeach

executable('exe_need_deps',  ['main.cpp'],
    dependencies: deps
)

参考:This gist