| CMP0221 | |
| ------- | |
| .. versionadded:: 4.5 | |
| :command:`cmake_host_system_information` ``DISTRIB_*`` queries read the host | |
| os-release. | |
| The :command:`cmake_host_system_information` command is documented to query | |
| information about the host system on which CMake runs. However, its | |
| ``DISTRIB_*`` queries read the :file:`/etc/os-release` (or | |
| :file:`/usr/lib/os-release`) file under the :variable:`CMAKE_SYSROOT`, if set. | |
| During cross compilation this reports the *target* distribution rather than | |
| the host, contradicting the rest of the command. | |
| The ``OLD`` behavior of this policy is for ``DISTRIB_*`` queries with no | |
| ``FROM_SYSROOT`` to read the os-release under :variable:`CMAKE_SYSROOT`. | |
| The ``NEW`` behavior is for such queries to read the host os-release, | |
| ignoring :variable:`CMAKE_SYSROOT`. | |
| Either behavior may be requested explicitly, regardless of this policy, with | |
| the ``FROM_SYSROOT <bool>`` option: | |
| * A false value reads the host os-release. | |
| * A true value reads the os-release under :variable:`CMAKE_SYSROOT`, which is | |
| useful for querying the target distribution (e.g. for packaging). | |
| .. code-block:: cmake | |
| # Always the host distribution: | |
| cmake_host_system_information(RESULT host QUERY FROM_SYSROOT OFF DISTRIB_ID) | |
| # Always the target (CMAKE_SYSROOT) distribution: | |
| cmake_host_system_information(RESULT target QUERY FROM_SYSROOT ON DISTRIB_ID) | |
| The warning is issued only when it can matter: a ``DISTRIB_*`` query with no | |
| ``FROM_SYSROOT`` while :variable:`CMAKE_SYSROOT` is non-empty. Passing | |
| ``FROM_SYSROOT``, or leaving :variable:`CMAKE_SYSROOT` empty, is silent. | |
| .. |INTRODUCED_IN_CMAKE_VERSION| replace:: 4.5 | |
| .. |WARNS_OR_DOES_NOT_WARN| replace:: warns | |
| .. include:: include/STANDARD_ADVICE.rst | |
| .. include:: include/DEPRECATED.rst |