获取文件名组件

获取完整文件名的特定组件。

在 3.20 版本发生变更: 此命令已被 cmake_path() 命令取代,除了 REALPATH 现在由 file(REAL_PATH) 命令和 PROGRAM 现在在 separate_arguments 中提供(程序)() 命令。

在 3.24 版本发生变更: 提供查询 Windows 注册表功能的未记录功能已被 cmake_host_system_information(QUERY WINDOWS_REGISTRY) 命令取代。

get_filename_component(<var> <FileName> <mode> [CACHE])

<var> 设置为 <FileName> 的一个组件,其中 <mode> 是以下之一:

DIRECTORY = Directory without file name
NAME      = File name without directory
EXT       = File name longest extension (.b.c from d/a.b.c)
NAME_WE   = File name with neither the directory nor the longest extension
LAST_EXT  = File name last extension (.c from d/a.b.c)
NAME_WLE  = File name with neither the directory nor the last extension
PATH      = Legacy alias for DIRECTORY (use for CMake <= 2.8.11)

在 3.14 版本加入: 添加了``LAST_EXT`` 和``NAME_WLE`` 模式。

返回的路径带有正斜杠,没有尾随斜杠。如果指定了可选的 CACHE 参数,结果变量将被添加到缓存中。

get_filename_component(<var> <FileName> <mode> [BASE_DIR <dir>] [CACHE])

在 3.4 版本加入.

<var> 设置为 <FileName> 的绝对路径,其中 <mode> 是以下之一:

ABSOLUTE  = Full path to file
REALPATH  = Full path to existing file with symlinks resolved

如果提供的 <FileName> 是相对路径,则相对于给定的基本目录 <dir> 进行评估。如果未提供基目录,则默认基目录将为 CMAKE_CURRENT_SOURCE_DIR

返回的路径带有正斜杠,没有尾随斜杠。如果指定了可选的 CACHE 参数,结果变量将被添加到缓存中。

get_filename_component(<var> <FileName> PROGRAM [PROGRAM_ARGS <arg_var>] [CACHE])

<FileName> 中的程序将在系统搜索路径中找到或保留为完整路径。如果 PROGRAM_ARGSPROGRAM 一起出现,则 <FileName> 字符串中出现的任何命令行参数都会从程序名称中分离出来并存储在 <arg_var> 中。这用于在命令行字符串中将程序名称与其参数分开。

也可以看看