Мы можем использовать систему сборки мезонов в conan. Но я не могу найти ни одного документа о том, как добавить пакет conan в качестве зависимости в meson.build. В cmake это очень просто, мы можем просто использовать conan_cmake_run. Как я могу сделать то же самое в мезоне?
есть ли способ использовать пакет conan в мезоне?
comment
Вы решили эту проблему?
- person Elvis Oric   schedule 03.05.2020
comment
нет. кажется, что это невозможно, единственный способ сделать это - создать проект conan внутри источника и позволить conan обрабатывать процесс сборки
- person Wang   schedule 16.05.2020
Ответы (2)
Поскольку мезон еще не поддержал Конана, нам нужно самостоятельно их преодолеть. К счастью, это простой пример:
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
)
Ссылка: Суть
person
hydev
schedule
09.05.2020
это на самом деле не работает, по крайней мере, в 1.25.
conan install ref@ -if somepath
работает не так, как вы ожидали. Он не установит ничего по этому пути, если пакет уже установлен в стандартное место .conan/data/
- person Wang; 16.05.2020
Более того, если в пакете не определен метод deploy (),
-if
вообще не действует.
- person Wang; 16.05.2020
чтобы скопировать все, от чего зависело, из conan / data в папку meson для упаковки, я должен указать '-g deploy'
- person Wang; 16.05.2020
@Wang Может быть, вашим пакетам для работы нужен генератор
deploy
. Для моих проектов C / C ++ cmake_find_package
достаточно хорош, он генерирует де-факто рецепт FindXXX.cmake, который указывает на .conan/data/
кеш и устанавливает соответствующие флаги.
- person hydev; 28.05.2020
Вот что я сделал:
run_command('conan', 'install', '--install-folder', meson.build_root(), meson.source_root(), check: true)
person
kpeace
schedule
26.04.2020