Как я могу сказать meson, в каких каталогах искать зависимости? - PullRequest
3 голосов
/ 24 марта 2020

Я иду от CMake до meson. Мне нравится работать в изолированных средах, используя conda. Таким образом, я могу контролировать, какие пакеты установлены для каждого проекта.

Теперь, в cmake я бы передал -DCMAKE_FIND_ROOT_PATH=$CONDA_PREFIX для root процесса поиска в другом каталоге (В моем случае - 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])

Ответы [ 2 ]

1 голос
/ 24 марта 2020

meson достаточно умен, чтобы находить пакеты внутри conda env, предполагая, что в указанной среде установлено pkg-config или cmake.

Также - правильный способ добавления внешней зависимости - использование dependency('spdlog') а не find_library.

Так что фиксированный meson.build должен выглядеть так:

project('foo', 'cpp')

spdlog = dependency('spdlog')

executable('foo',
  'src/fact.cpp',
  dependencies : [spdlog])
0 голосов
/ 26 апреля 2020

Мезон получает параметр

--pkg-config-path path

, который добавит путь к пути поиска pkg-config.

Добавление

spdlog = dependency('spdlog')

Находит spdlog, пока файл .p c находится в path

...