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
