cmake:find_file、find_library、find_path、find_program

1060 篇文章 292 订阅

find_file

find_file (<VAR> name1 [path1 path2 ...])
find_file (
          <VAR>
          name | NAMES name1 [name2 ...]
          [HINTS [path | ENV var]... ]
          [PATHS [path | ENV var]... ]
          [PATH_SUFFIXES suffix1 [suffix2 ...]]
          [DOC "cache documentation string"]
          [NO_CACHE]
          [REQUIRED]
          [NO_DEFAULT_PATH]
          [NO_PACKAGE_ROOT_PATH]
          [NO_CMAKE_PATH]
          [NO_CMAKE_ENVIRONMENT_PATH]
          [NO_SYSTEM_ENVIRONMENT_PATH]
          [NO_CMAKE_SYSTEM_PATH]
          [CMAKE_FIND_ROOT_PATH_BOTH |
           ONLY_CMAKE_FIND_ROOT_PATH |
           NO_CMAKE_FIND_ROOT_PATH]
         )
  • 该命令用于查找指定文件的完整路径
  • 创建一个名为< VAR >的缓存条目(如果指定了NO_CACHE,则是一个普通变量)来存储此命令的结果。
    • 如果找到文件的完整路径,则结果存储在变量中,并且搜索不会重复,除非该变量被清除。
    • 如果没有找到,结果将是< VAR >-NOTFOUND。

选项包括:

  • NAMES
    • 为文件的完整路径指定一个或多个可能的名称。
    • 当使用此方法指定带有或不带有版本后缀的名称时,我们建议首先指定未版本控制的名称,以便在发行版提供的包之前找到本地构建的包。
  • HINTS, PATHS
    • 除默认位置外,指定要搜索的目录。
    • ENV var子选项从系统环境变量中读取路径。
  • PATH_SUFFIXES
    • 在每个目录位置下面指定要检查的其他子目录。
  • DOC:
    • 指定< VAR>缓存项的文档字符串。
  • NO_CACHE
    • 3.21新版功能。
    • 搜索结果将存储在一个普通变量中,而不是缓存项中。
    • 注意,如果在调用之前已经设置了变量(作为普通变量或缓存变量),则不会进行搜索。
    • 警告:应该谨慎使用此选项,因为它可能会大大增加重复配置步骤的成本。
  • REQUIRED
    • 3.18新版功能。
    • 如果没有找到任何东西,则停止处理并给出错误消息,否则下次用相同的变量调用find_file时将再次尝试搜索。
  • NO_DEFAULT_PATH :
    • 如果指定了NO_DEFAULT_PATH,则不会向搜索添加其他路径。
    • 如果没有指定NO_DEFAULT_PATH,搜索过程如下:

find_library

find_library (<VAR> name1 [path1 path2 ...])
find_library (
          <VAR>
          name | NAMES name1 [name2 ...] [NAMES_PER_DIR]
          [HINTS [path | ENV var]... ]
          [PATHS [path | ENV var]... ]
          [PATH_SUFFIXES suffix1 [suffix2 ...]]
          [DOC "cache documentation string"]
          [NO_CACHE]
          [REQUIRED]
          [NO_DEFAULT_PATH]
          [NO_PACKAGE_ROOT_PATH]
          [NO_CMAKE_PATH]
          [NO_CMAKE_ENVIRONMENT_PATH]
          [NO_SYSTEM_ENVIRONMENT_PATH]
          [NO_CMAKE_SYSTEM_PATH]
          [CMAKE_FIND_ROOT_PATH_BOTH |
           ONLY_CMAKE_FIND_ROOT_PATH |
           NO_CMAKE_FIND_ROOT_PATH]
         )

此命令用于查找库。创建一个名为< VAR >的缓存条目(如果指定了NO_CACHE,则是一个普通变量)来存储此命令的结果。如果找到库,则结果存储在变量中,并且搜索不会重复,除非该变量被清除。如果没有找到,结果将是< VAR >-NOTFOUND。

选项包括:

  • NAMES
    • 为库指定一个或多个可能的名称。
    • 当使用此方法指定带有或不带有版本后缀的名称时,我们建议首先指定未版本控制的名称,以便在发行版提供的包之前找到本地构建的包

find_path

find_path (<VAR> name1 [path1 path2 ...])
find_path (
          <VAR>
          name | NAMES name1 [name2 ...]
          [HINTS [path | ENV var]... ]
          [PATHS [path | ENV var]... ]
          [PATH_SUFFIXES suffix1 [suffix2 ...]]
          [DOC "cache documentation string"]
          [NO_CACHE]
          [REQUIRED]
          [NO_DEFAULT_PATH]
          [NO_PACKAGE_ROOT_PATH]
          [NO_CMAKE_PATH]
          [NO_CMAKE_ENVIRONMENT_PATH]
          [NO_SYSTEM_ENVIRONMENT_PATH]
          [NO_CMAKE_SYSTEM_PATH]
          [CMAKE_FIND_ROOT_PATH_BOTH |
           ONLY_CMAKE_FIND_ROOT_PATH |
           NO_CMAKE_FIND_ROOT_PATH]
         )

该命令用于查找包含命名文件的目录。创建一个名为< VAR >的缓存条目(如果指定了NO_CACHE,则是一个普通变量)来存储此命令的结果。如果找到目录中的文件,结果将存储在变量中,并且搜索将不会重复,除非该变量被清除。如果没有找到,结果将是< VAR >-NOTFOUND。

find_program

find_program (<VAR> name1 [path1 path2 ...])
find_program (
          <VAR>
          name | NAMES name1 [name2 ...] [NAMES_PER_DIR]
          [HINTS [path | ENV var]... ]
          [PATHS [path | ENV var]... ]
          [PATH_SUFFIXES suffix1 [suffix2 ...]]
          [DOC "cache documentation string"]
          [NO_CACHE]
          [REQUIRED]
          [NO_DEFAULT_PATH]
          [NO_PACKAGE_ROOT_PATH]
          [NO_CMAKE_PATH]
          [NO_CMAKE_ENVIRONMENT_PATH]
          [NO_SYSTEM_ENVIRONMENT_PATH]
          [NO_CMAKE_SYSTEM_PATH]
          [CMAKE_FIND_ROOT_PATH_BOTH |
           ONLY_CMAKE_FIND_ROOT_PATH |
           NO_CMAKE_FIND_ROOT_PATH]
         )

该命令用于查找程序。创建一个名为< VAR >的缓存条目(如果指定了NO_CACHE,则是一个普通变量)来存储此命令的结果。如果找到该程序,则结果存储在该变量中,并且搜索不会重复,除非该变量被清除。如果没有找到,结果将是< VAR >-NOTFOUND。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值