В мезон вы можете проверить наличие каталога в вашем проекте?

Можно ли с помощью сборки meson проверить наличие каталога в моем проекте?

Например, я обычно помещаю приемочные тесты рядом с моими модульными тестами в структуру папок, например:

library/
        header.hp
        src/
            lib.cpp
        tests/
              acceptance_test/
              unit_test/ 

У меня не всегда есть приемочные тесты, и я бы хотел, чтобы там не было файла meson.build, если в этом нет необходимости. Я бы предпочел условно subdir('acceptance_test') если каталог acceptance_test/ существует.

2 ответа

Решение

Update:Starting with Meson v0.53.0, you can use the Filesystem module:

      fs = import('fs')
if fs.is_dir('<dirname>')
  message('directory exists')
endif

This is portable, and does not depend on a shell.

Просматривая справочное руководство, я не вижу прямой поддержки этому.

Ты можешь использовать run_commandделает что-то вроде

if run_command('[', '-d', dirname, ']').returncode() == 0
    message('directory exists')
endif

но, конечно, у этого есть недостаток не работать на разных платформах.

Другие вопросы по тегам