Files
CMake/Help/variable/CMAKE_FIND_REQUIRED.rst
Martin Duffy 857a039d66 find_*: Add variable to default calls to REQUIRED
This adds a `CMAKE_FIND_REQUIRED` variable which causes `find_package`,
`find_path`, `find_file`, `find_library` and `find_program` to be
considered `REQUIRED` by default.

It also introduces an `OPTIONAL` keyword to those commands, allowing
them to ignore the value of this variable.

Issue: #26576
2025-02-27 10:51:07 -05:00

28 lines
1.0 KiB
ReStructuredText

CMAKE_FIND_REQUIRED
-------------------
.. versionadded:: 4.1
If enabled, the following commands are treated as having the ``REQUIRED``
keyword unless provided with the ``OPTIONAL`` keyword:
* :command:`find_package`
* :command:`find_program`
* :command:`find_library`
* :command:`find_path`
* :command:`find_file`
When :command:`find_package` loads a ``Find<PackageName>.cmake``
or ``<PackageName>Config.cmake`` module, the ``CMAKE_FIND_REQUIRED``
variable is automatically unset within it to restore the default
behavior for nested find operations. The module is free to set the
``CMAKE_FIND_REQUIRED`` variable itself to opt-in to the behavior.
Note that enabling this variable breaks some commonly used patterns.
Multiple calls to :command:`find_package` are sometimes used to obtain a
different search order to the default.
See also the :variable:`CMAKE_REQUIRE_FIND_PACKAGE_<PackageName>` for making
a :command:`find_package` call ``REQUIRED``, and for additional information on
how enabling these variables can break commonly used patterns.