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 - 檔案名稱最長副檔名 (.b.c 來自 d/a.b.c)。

  • NAME_WE - 檔案名稱,不含目錄和最長副檔名。

  • LAST_EXT - 檔案名稱最後一個副檔名 (.c 來自 d/a.b.c)。

  • NAME_WLE - 檔案名稱,不含目錄和最後一個副檔名。

  • PATH - DIRECTORY 的舊版別名 (用於 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 - 檔案的完整路徑。

  • REALPATH - 已解析符號連結的現有檔案的完整路徑。

如果提供的 <FileName> 是相對路徑,則會相對於給定的基準目錄 <dir> 進行評估。如果未提供基準目錄,則預設基準目錄將為 CMAKE_CURRENT_SOURCE_DIR

路徑會以正斜線返回,且不帶尾部斜線。如果指定了可選的 CACHE 參數,則結果變數會新增到快取中。

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

將在系統搜尋路徑中找到 <FileName> 中的程式,或保留為完整路徑。如果 PROGRAM_ARGSPROGRAM 一起出現,則 <FileName> 字串中存在的任何命令列引數都會從程式名稱中分離出來,並儲存在 <arg_var> 中。這用於在命令列字串中將程式名稱與其引數分開。

參見