美文网首页
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