| 1234567891011121314151617181920212223242526272829303132333435363738 |
- CMP0177
- -------
- .. versionadded:: 3.31
- :command:`install` ``DESTINATION`` paths are normalized.
- The :command:`install` command has a number of different forms, and most of
- them take a ``DESTINATION`` keyword, some in more than one place.
- CMake 3.30 and earlier used the value given after the ``DESTINATION`` keyword
- as provided with no transformations. The :command:`install(EXPORT)` form
- assumes the path contains no ``..`` or ``.`` path components when computing
- a path relative to the ``DESTINATION``, and if the project provided a path
- that violated that assumption, the computed path would be incorrect.
- CMake 3.31 normalizes all ``DESTINATION`` values given in any form of the
- :command:`install` command, except for the ``INCLUDES DESTINATION`` of the
- :command:`install(TARGETS)` form. The normalization performed is the same
- as for the :command:`cmake_path` command (see :ref:`Normalization`).
- The ``OLD`` behavior of this policy performs no translation on the
- ``DESTINATION`` values of any :command:`install` command. They are used
- exactly as provided. If a destination path contains ``..`` or ``.`` path
- components, :command:`install(EXPORT)` will use the same wrong paths as
- CMake 3.30 and earlier.
- The ``NEW`` behavior will normalize all ``DESTINATION`` values except for
- ``INCLUDES DESTINATION``. If a destination path contains a generator
- expression, it will be wrapped in a ``$<PATH:CMAKE_PATH,NORMALIZE,...>``
- generator expression.
- This policy was introduced in CMake version 3.31.
- It may be set by :command:`cmake_policy` or :command:`cmake_minimum_required`.
- If it is not set, CMake will warn if it detects a path that would be different
- if normalized, and uses ``OLD`` behavior. If a destination path contains a
- generator expression, no such warning will be issued regardless of the value.
- .. include:: include/DEPRECATED.rst
|