3

使用介子构建,是否可以测试我的项目中是否存在目录?

例如,我通常将验收测试放在我的单元测试旁边的文件夹结构中,如下所示:

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

我并不总是有验收测试,如果没有必要,我想避免在那里有一个 meson.build 文件。subdir('acceptance_test')如果目录acceptance_test/存在, 我宁愿有一个条件。

4

2 回答 2

5

翻阅参考手册,我没有看到任何对此的直接支持。

你可以使用run_command,做类似的事情

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

但是,当然,这具有不能跨平台工作的缺点。

于 2016-01-07T22:47:13.183 回答
2

更新: 从 Meson v0.53.0 开始,您可以使用Filesystem模块:

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

这是可移植的,并且不依赖于外壳。

于 2021-09-27T08:37:46.827 回答