summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
authorCraig Scott <craig.scott@crascit.com>2019-10-27 05:10:09 (GMT)
committerCraig Scott <craig.scott@crascit.com>2019-10-27 05:10:09 (GMT)
commit049dbdd38c56ad9ea06af2032faf3348c3c76742 (patch)
treee6284df653308f3af4330bdf8de61910c05ff072 /Help
parent92780281c2e8a46223b262b152caa9c8329373b1 (diff)
downloadCMake-049dbdd38c56ad9ea06af2032faf3348c3c76742.zip
CMake-049dbdd38c56ad9ea06af2032faf3348c3c76742.tar.gz
CMake-049dbdd38c56ad9ea06af2032faf3348c3c76742.tar.bz2
Help: Document that <PackageName>_ROOT applies to config packages too
The original intent of <PackageName>_ROOT may have been for it to apply only to Find modules, but the implementation of the find_package() command treats modules and config packages the same. Both result in a <PackageName>_ROOT variable being pushed onto the stack of package roots. A config package can also call other find_...() commands, the behavior doesn't apply just to find modules.
Diffstat (limited to 'Help')
-rw-r--r--Help/command/FIND_XXX.txt13
-rw-r--r--Help/policy/CMP0074.rst6
2 files changed, 10 insertions, 9 deletions
diff --git a/Help/command/FIND_XXX.txt b/Help/command/FIND_XXX.txt
index 40f1c1a..42bf52b 100644
--- a/Help/command/FIND_XXX.txt
+++ b/Help/command/FIND_XXX.txt
@@ -79,15 +79,16 @@ If ``NO_DEFAULT_PATH`` is not specified, the search process is as follows:
|prefix_XXX_SUBDIR| for each ``<prefix>`` in
:variable:`CMAKE_SYSTEM_PREFIX_PATH`
-1. If called from within a find module loaded by
+1. If called from within a find module or any other script loaded by a call to
:command:`find_package(<PackageName>)`, search prefixes unique to the
- current package being found. Specifically look in the
+ current package being found. Specifically, look in the
:variable:`<PackageName>_ROOT` CMake variable and the
:envvar:`<PackageName>_ROOT` environment variable.
- The package root variables are maintained as a stack so if called from
- nested find modules, root paths from the parent's find module will be
- searched after paths from the current module,
- i.e. ``<CurrentPackage>_ROOT``, ``ENV{<CurrentPackage>_ROOT}``,
+ The package root variables are maintained as a stack, so if called from
+ nested find modules or config packages, root paths from the parent's find
+ module or config package will be searched after paths from the current
+ module or package. In other words, the search order would be
+ ``<CurrentPackage>_ROOT``, ``ENV{<CurrentPackage>_ROOT}``,
``<ParentPackage>_ROOT``, ``ENV{<ParentPackage>_ROOT}``, etc.
This can be skipped if ``NO_PACKAGE_ROOT_PATH`` is passed or by setting
the :variable:`CMAKE_FIND_USE_PACKAGE_ROOT_PATH` to ``FALSE``.
diff --git a/Help/policy/CMP0074.rst b/Help/policy/CMP0074.rst
index 896936b..63ebf7b 100644
--- a/Help/policy/CMP0074.rst
+++ b/Help/policy/CMP0074.rst
@@ -7,9 +7,9 @@ In CMake 3.12 and above the :command:`find_package(<PackageName>)` command now
searches prefixes specified by the :variable:`<PackageName>_ROOT` CMake
variable and the :envvar:`<PackageName>_ROOT` 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.
+commands inside find modules and config packages 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