get_filename_component¶
获取完整文件名的特定组件。
在 3.20 版本中变更:此命令已被 cmake_path()
命令取代,除了 REALPATH
,它现在由 file(REAL_PATH)
提供,以及 PROGRAM
,现在在 separate_arguments(PROGRAM)
中可用。
在 3.24 版本中变更:未记录的查询 Windows
注册表的功能已被 cmake_host_system_information(QUERY WINDOWS_REGISTRY) 命令取代。
get_filename_component(<var> <FileName> <mode> [CACHE])
将 <var>
设置为 <FileName>
的一个组件,其中 <mode>
是以下之一
DIRECTORY
- 不带文件名的目录。NAME
- 不带目录的文件名。EXT
- 文件名最长扩展名(d/a.b.c
中的.b.c
)。NAME_WE
- 文件名,不带目录和最长扩展名。LAST_EXT
- 文件名最后扩展名(d/a.b.c
中的.c
)。NAME_WLE
- 文件名,不带目录和最后扩展名。PATH
-DIRECTORY
的旧别名(用于 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
- 文件的完整路径。REALPATH
- 已解析符号链接的现有文件的完整路径。
如果提供的 <FileName>
是相对路径,则它将相对于给定的基本目录 <dir>
进行评估。如果未提供基本目录,则默认基本目录将是 CMAKE_CURRENT_SOURCE_DIR
。
路径以正斜杠返回,并且没有尾部斜杠。如果指定了可选的 CACHE
参数,则结果变量将添加到缓存中。
get_filename_component(<var> <FileName> PROGRAM [PROGRAM_ARGS <arg_var>] [CACHE])
将在系统搜索路径中找到 <FileName>
中的程序,或将其保留为完整路径。如果 PROGRAM_ARGS
与 PROGRAM
一起出现,则 <FileName>
字符串中存在的任何命令行参数都将从程序名称中分离出来,并存储在 <arg_var>
中。这用于在命令行字符串中将程序名称与其参数分开。