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_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_ARGS
與 PROGRAM
一起存在,則 <FileName>
字串中存在的任何命令列引數都會從程式名稱中分離出來,並儲存在 <arg_var>
中。這用於將命令列字串中的程式名稱與其引數分開。