diff options
author | Craig Scott <craig.scott@crascit.com> | 2019-10-27 05:10:09 (GMT) |
---|---|---|
committer | Craig Scott <craig.scott@crascit.com> | 2019-10-27 05:10:09 (GMT) |
commit | 049dbdd38c56ad9ea06af2032faf3348c3c76742 (patch) | |
tree | e6284df653308f3af4330bdf8de61910c05ff072 /Help | |
parent | 92780281c2e8a46223b262b152caa9c8329373b1 (diff) | |
download | CMake-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.txt | 13 | ||||
-rw-r--r-- | Help/policy/CMP0074.rst | 6 |
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 |