Может ли Мезон прочитать содержимое файла

Возможно ли для 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')
Другие вопросы по тегам