Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查目录是否已由cmake处理_Cmake - Fatal编程技术网

检查目录是否已由cmake处理

检查目录是否已由cmake处理,cmake,Cmake,我需要在给定目录上调用get\u directory\u properties。但是,给定目录可能是cmake尚未处理的目录,在这种情况下,上述命令返回错误: CMake Error at CMakeLists.txt:111 (get_directory_property): get_directory_property DIRECTORY argument provided but requested directory not found. This could be becau

我需要在给定目录上调用
get\u directory\u properties
。但是,给定目录可能是cmake尚未处理的目录,在这种情况下,上述命令返回错误:

CMake Error at CMakeLists.txt:111 (get_directory_property):
  get_directory_property DIRECTORY argument provided but requested directory
  not found.  This could be because the directory argument was invalid or, it
  is valid but has not been processed yet.
因此,我的想法是验证给定的目录确实已经由cmake处理过(因此我可以安全地在其上调用
get\u directory\u properties
),如果没有,我想做其他事情。

然而,我找不到一种方法来检查这个问题,而且到目前为止,我在互联网上似乎找不到任何关于这个问题的信息。有人知道如何做到这一点吗?

AFAIK,对于一个大型项目来说,要做到这一点是不容易的。如果您的项目足够小,您可能会发现directory属性很有用,它包含给定目录的已处理子目录列表。否则,您可以在CMake配置运行时创建并更新已处理目录的全局列表,然后根据需要检查给定目录的列表。@squareskittles
子目录
属性实际上是我想要获取的属性^^^^,但是在当前目录上使用该属性来查看相应的子目录是否已被处理过似乎是一种合理的解决方法。我认为只要当前目录本身是一个未处理的目录,它就会崩溃(我正计划迭代处理这些目录)……恐怕目前没有简单的方法。一般来说,您可以从CMAKE_SOURCE_DIR开始,遍历所有子目录,检查是否可以从那里访问您的目录,但我想您已经知道了。如果我也正确理解了您的评论,那么您可以将搜索范围限制在CMAKE_CURRENT_SOURCE_DIR及其(递归)子级。好了,对于一个大型项目来说,这是不容易做到的。如果您的项目足够小,您可能会发现directory属性很有用,它包含给定目录的已处理子目录列表。否则,您可以在CMake配置运行时创建并更新已处理目录的全局列表,然后根据需要检查给定目录的列表。@squareskittles
子目录
属性实际上是我想要获取的属性^^^^,但是在当前目录上使用该属性来查看相应的子目录是否已被处理过似乎是一种合理的解决方法。我认为只要当前目录本身是一个未处理的目录,它就会崩溃(我正计划迭代处理这些目录)……恐怕目前没有简单的方法。一般来说,您可以从CMAKE_SOURCE_DIR开始,遍历所有子目录,检查是否可以从那里访问您的目录,但我想您已经知道了。如果我也正确理解了您的评论,那么您可以将搜索范围限制在CMAKE\u CURRENT\u SOURCE\u DIR及其(递归)子级。