Cmake:从另一个(已处理的)目录中读取变量

时间:2016-04-19 09:41:51

标签: scope cmake

我正在尝试查询一系列addsubdirectories()的包含路径:

-projectA
    -projectB
        -projectC

在此设置中,projectA正在添加ProjectB作为子目录,而子目录又将ProjectC添加为子目录。我想让projectC了解层次结构。 我可以通过递归调用

来实现这一点
get_directory_property(parent DIRECTORY ${cur_dir} PARENT_DIRECTORY)

当它到达projectA时将不返回任何内容。这几乎就是这样。但是,如果我能从这些目录中读取${PROJECT_NAME}并返回A-B-C而不是projectA-projectB-projectC,那就太好了。

所以我的问题是:有没有办法从已经解析过的目录中读取变量?

请注意,在这种情况下,虽然projectC将从其父项继承变量,但标准缓存变量将替换为子项目,这就是我无法使用它们的原因。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

get_directory_property(output DIRECTORY dir/path DEFINITION PROJECT_NAME)

或任何正常变量:

get_directory_property(output DIRECTORY dir/path DEFINITION myVariable)