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 存在且带有 PROGRAM_ARGS,则 <FileName> 字符串中存在的任何命令行参数将从程序名称中分离,并存储在 <arg_var> 中。这用于将命令行字符串中的程序名称与其参数分开。