在介子中,您可以测试项目中是否存在目录吗?

pax*_*977 4 build build-system meson-build

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

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

library/
        header.hp
        src/
            lib.cpp
        tests/
              acceptance_test/
              unit_test/ 
Run Code Online (Sandbox Code Playgroud)

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

Man*_*ork 6

更新: 从 Meson v0.53.0 开始,您可以使用文件系统模块:

fs = import('fs')
if fs.is_dir('<dirname>')
  message('directory exists')
endif
Run Code Online (Sandbox Code Playgroud)

这是便携式的,并且不依赖于 shell。


rni*_*ckb 5

浏览参考手册,我没有看到对此有任何直接支持。

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

if run_command('[', '-d', dirname, ']').returncode() == 0
    message('directory exists')
endif
Run Code Online (Sandbox Code Playgroud)

但是,当然,这有一个缺点,那就是不能跨平台工作。