mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 13:20:47 -06:00
This feature was originally added by commit v3.9.0-rc1~71^2~2 (find_*: Add a new PackageRoot search path group, 2017-05-03) and documented by commit v3.9.0-rc1~71^2 (find_*: Add docs for PackageRoot search path group, 2017-05-03). However, we had to disable the feature and remove the documentation in commit v3.9.1~2^2 (find_*: Disable the PACKAGE_ROOT search path group for CMake 3.9, 2017-08-08) due to breaking projects that used `PackageName_ROOT` variables themselves. Add policy `CMP0074` to restore the `PackageName_ROOT` variable behavior in a compatible way. Also revise the stack of root paths to store the paths themselves rather than the package names. This way the policy can be considered at the `find_package` call site instead of individual `find_` calls inside a find module. Co-Author: Chuck Atkins <chuck.atkins@kitware.com> Issue: #17144
23 lines
927 B
ReStructuredText
23 lines
927 B
ReStructuredText
CMP0074
|
|
-------
|
|
|
|
:command:`find_package` uses ``PackageName_ROOT`` variables.
|
|
|
|
In CMake 3.12 and above the ``find_package(PackageName)`` command now searches
|
|
a prefix specified by a ``PackageName_ROOT`` CMake or environment variable.
|
|
Package roots are maintained as a stack so nested calls to all ``find_*``
|
|
commands inside find modules also search the roots as prefixes. This policy
|
|
provides compatibility with projects that have not been updated to avoid using
|
|
``PackageName_ROOT`` variables for other purposes.
|
|
|
|
The ``OLD`` behavior for this policy is to ignore ``PackageName_ROOT``
|
|
variables. The ``NEW`` behavior for this policy is to use ``PackageName_ROOT``
|
|
variables.
|
|
|
|
This policy was introduced in CMake version 3.12. CMake version
|
|
|release| warns when the policy is not set and uses ``OLD`` behavior.
|
|
Use the :command:`cmake_policy` command to set it to ``OLD`` or ``NEW``
|
|
explicitly.
|
|
|
|
.. include:: DEPRECATED.txt
|