【问题标题】:Is `meson.source_root()` the project root directory?`meson.source_root()` 是项目根目录吗?
【发布时间】:2015-12-23 21:14:41
【问题描述】:

meson.source_root() 返回的目录是项目根目录(带有根级别的 meson.build 文件)还是当前正在处理的 meson.build 文件的路径?

【问题讨论】:

    标签: build build-system meson-build


    【解决方案1】:

    使用以下介子语法获取项目根目录:

    meson.source_root()
    

    当前源码目录可以通过如下介子语法获取:

    meson.current_source_dir()
    

    【讨论】:

    • 有些“令人不安”的是 current_source_dir() 给出了 source_root() 的相对路径,所以我总是需要做join_paths(meson.source_root(), meson.current_source_dir())
    • @slamander 我刚刚尝试了您的建议,但对我不起作用。有可能我们在谈论不同的事情,但如果有源根/some/dir 和当前源目录some/dir/src 然后current_source_dir() 给我/some/dir/./src 和join_paths() 就像你上面显示的给我同样的事情。我做了以下来解决这个问题,但可能有更好/更简单的方法(这是我使用介子的第一天):curDir = meson.current_source_dir()curDir = curDir.split('.')curDir = curDir[0] + curDir[1]curDir = curDir.split('//')curDir = join_paths(curDir[0], curDir[1])
    • 在我之前的评论中空间不足,但是如果您的目录名称包含“。”,我提供的代码会很脆弱人物。我所做的是将curDir = meson.current_source_dir() 之后的所有内容封装在if ( curDir.contains('/./') ) 中,以确保它不会随机执行'。'字符。
    猜你喜欢
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    相关资源
    最近更新 更多