Проект Meson: могу ли я разместить часть источника где-нибудь в другом месте?

Как в проекте Meson скомпилировать файлы (т.е. не только заголовки), расположенные в каталоге, которого нет в моем дереве проекта?

E.g.:

MyProj/
   src/
      meson.build
ExternalCode/
   src/
      file1.h
      file1.cpp

include_directories предназначен только для заголовков ...

Если я использую ".." в пути к файлам, я получаю такую ​​ошибку:

meson.build:10:0: ОШИБКА: Подкаталог содержит ..


person Pietro    schedule 27.09.2018    source источник


Ответы (1)


Если вы хотите создать ExternalCode как часть своего проекта, я рекомендую каким-то образом получить этот каталог внутри вашего проекта, например используя символическую ссылку и поместив рядом файл meson.build. Итак, макет вашего проекта будет выглядеть так:

MyProj/
   meson.build
   src/
      meson.build
   external/
      ExternalCode -> link to ...
      meson.build

Затем узнайте meson обо всех подкаталогах в проекте, поместив это в файл верхнего уровня meson.build:

subdir('src')
subdir('external')
person pmod    schedule 28.09.2018