Может ли Мезон прочитать содержимое файла
Возможно ли для Meson считывать содержимое файла в массив или строку? Отсюда строка может быть разбита на массив, а массив может быть зациклен с помощью foreach
, но я не смог найти способ получить данные из файла для начала.
3 ответа
Решение
Не напрямую нет, вы можете использовать run_command()
чтобы получить его из другого инструмента / скрипта, хотя.
Update
Since Meson 0.57.0, you can use the read
function of the Filesystem module:
fs = import('fs')
...
my_list = fs.read('list.txt').strip().split('\n')
foreach item : my_list
# Do something
endforeach
Чтобы завершить ответ @TingPing, я обычно делаю это:
files = run_command(
'cat', files('thefile.txt'),
).stdout().strip()
Этот метод также может быть использован для чего-то вроде:
images = run_command('find',
meson.current_source_dir(),
'-type', 'f',
'-name', '*.png',
'-printf', '%f\n'
).stdout().strip().split('\n')
Не забывайте, что ссылки на файлы могут быть немного неточными в Meson, поэтому вам нужно использовать один из них:
files('thefilename')
join_paths(meson.source_root(), meson.current_source_dir(), 'thefilename')