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