| get_filename_component |
| ---------------------- |
| |
| Get a specific component of a full filename. |
| |
| .. versionchanged:: 3.20 |
| This command been superseded by :command:`cmake_path` command, except |
| ``REALPATH`` now offered by :ref:`file(REAL_PATH) <REAL_PATH>` command and |
| ``PROGRAM`` now available in :command:`separate_arguments(PROGRAM)` command. |
| |
| .. code-block:: cmake |
| |
| get_filename_component(<var> <FileName> <mode> [CACHE]) |
| |
| Sets ``<var>`` to a component of ``<FileName>``, where ``<mode>`` is one of: |
| |
| :: |
| |
| 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) |
| |
| .. versionadded:: 3.14 |
| Added the ``LAST_EXT`` and ``NAME_WLE`` modes. |
| |
| Paths are returned with forward slashes and have no trailing slashes. |
| If the optional ``CACHE`` argument is specified, the result variable is |
| added to the cache. |
| |
| .. code-block:: cmake |
| |
| get_filename_component(<var> <FileName> <mode> [BASE_DIR <dir>] [CACHE]) |
| |
| .. versionadded:: 3.4 |
| |
| Sets ``<var>`` to the absolute path of ``<FileName>``, where ``<mode>`` is one |
| of: |
| |
| :: |
| |
| ABSOLUTE = Full path to file |
| REALPATH = Full path to existing file with symlinks resolved |
| |
| If the provided ``<FileName>`` is a relative path, it is evaluated relative |
| to the given base directory ``<dir>``. If no base directory is |
| provided, the default base directory will be |
| :variable:`CMAKE_CURRENT_SOURCE_DIR`. |
| |
| Paths are returned with forward slashes and have no trailing slashes. If the |
| optional ``CACHE`` argument is specified, the result variable is added to the |
| cache. |
| |
| .. code-block:: cmake |
| |
| get_filename_component(<var> <FileName> PROGRAM [PROGRAM_ARGS <arg_var>] [CACHE]) |
| |
| The program in ``<FileName>`` will be found in the system search path or |
| left as a full path. If ``PROGRAM_ARGS`` is present with ``PROGRAM``, then |
| any command-line arguments present in the ``<FileName>`` string are split |
| from the program name and stored in ``<arg_var>``. This is used to |
| separate a program name from its arguments in a command line string. |