#meson-build
#meson-сборка
Вопрос:
Относительно корня моего проекта, где находится meson.build, все мои исходные файлы находятся под src/
.
Возможно ли указать эти исходные файлы в meson.build таким образом, чтобы не заставлять меня добавлять ко всем ним префикс src/
, учитывая, что это несколько избыточно?
Ответ №1:
Добавлять префиксы в исходные файлы не нужно, поскольку meson предоставляет специальную функцию: files(), которая генерирует объект файлового массива, который «запоминает» подкаталог. Например, в корне meson.build вы можете иметь:
subdir('src')
subdir('src_more')
exe = executable('test', sources)
В src/meson.build:
sources = files('a1.c', 'a2.c')
И в src_more/meson.build:
sources = files('b1.c', 'b2.c')
Ответ №2:
Вам действительно следует поместить meson.build
файл в src/
и создать там список.
Комментарии:
1. Даже когда я это делаю, Meson, похоже, все еще хочет, чтобы я указывал пути к файлам относительно корневого meson.build.
2. Это работает не так, возможно, вам потребуется опубликовать больше контекста.
Ответ №3:
На самом деле вы можете «собрать» массив файлов, используя foreach
инструкцию:
raw_sources = [
'foo.cpp',
'foomanager.cpp',
'foofactory.cpp'
]
sources = []
foreach file : raw_sources
full_path = join_paths('src', file)
sources = files(full_path)
endforeach
И теперь исходники содержат файлы с нужным префиксом.