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 = 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_EXTNAME_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> 中。這用於將命令列字串中的程式名稱與其引數分開。

另請參閱