cmake:find_file、find_library、find_path、find_program
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。
还没有评论,来说两句吧...