美文网首页
CMake获取目录属性命令get_directory_prope

CMake获取目录属性命令get_directory_prope

作者: Domibaba | 来源:发表于2023-09-13 12:04 被阅读0次

可以通过get_directory_property来获取指定目录的属性。

命令格式

get_directory_property(<variable> [DIRECTORY <dir>] <prop-name>)

  • <variable>:目录属性的获取结果

  • DIRECTORY:指定待获取属性所属的目录,如果只是获取当前目录,则可以不指定后续的DIRECTORY选项。<dir>目录可以是相对路径也可以是绝对路径,如果是相对路径,则是相对于当前目录的路径。

    需要注意的是,指定的目录必须被add_subdirectory()命令或include_directories()等命令添加过,或者是CMake构建启动时的顶层目录。

  • <prop-name>:属性名称。

简单示例

接下来我们简单演示如何获取目录的属性VARIABLES,该属性表示当前已定义的CMake变量列表。

  • 获取当前目录

    CMakeLists.txt文件内容:

    cmake_minimum_required(VERSION 3.22.1)
    project(test)
    
    get_directory_property(vars VARIABLES)
    message("# Get current DIRECTORY property VARIABLES: ${vars}")
    

    运行cmake .输出内容(只截取部分):

    # Get current DIRECTORY property VARIABLES: CMAKE_ADDR2LINE;CMAKE_AR;CMAKE_AR;C……
    
  • 获取指定目录(目录未添加的情况)

    CMakeLists.txt文件内容:

    cmake_minimum_required(VERSION 3.22.1)
    project(test)
    
    get_directory_property(vars DIRECTORY test VARIABLES)
    message("# Get test DIRECTORY property VARIABLES: ${vars}")
    

    运行cmake .会提示目录找不到:

    CMake Error at CMakeLists.txt:23 (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.
    
  • 获取指定目录(目录已添加的情况)

    假定我们在当前目录已经创建test子目录,CMakeLists.txt文件内容如下:

    cmake_minimum_required(VERSION 3.22.1)
    project(test)
    add_subdirectory(test)
    get_directory_property(vars DIRECTORY test VARIABLES)
    message("# Get test DIRECTORY property VARIABLES: ${vars}")
    

    运行cmake .,能正常获取到属性VARIABLES。

相关文章

网友评论

      本文标题:CMake获取目录属性命令get_directory_prope

      本文链接:https://www.haomeiwen.com/subject/dkycvdtx.html