summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-09-08 14:41:46 (GMT)
committerBrad King <brad.king@kitware.com>2017-09-08 14:44:45 (GMT)
commite48acfc501cec71337a6dbe04e9d61e9224fba6b (patch)
treed215168b8d64c3b8e3f5866601bbfdff8692dd30
parent07a05079d366fad306117a99267b71141d3731b2 (diff)
downloadCMake-e48acfc501cec71337a6dbe04e9d61e9224fba6b.zip
CMake-e48acfc501cec71337a6dbe04e9d61e9224fba6b.tar.gz
CMake-e48acfc501cec71337a6dbe04e9d61e9224fba6b.tar.bz2
CMakeFindDependencyMacro: Document return() behavior and caveats
The `find_dependency` macro is designed to be called from Package Configuration Files, not from Find Modules. The return() behavior is particularly problematic for find modules. Document this more clearly. Issue: #17257
-rw-r--r--Modules/CMakeFindDependencyMacro.cmake25
1 files changed, 18 insertions, 7 deletions
diff --git a/Modules/CMakeFindDependencyMacro.cmake b/Modules/CMakeFindDependencyMacro.cmake
index 0ad4531..6a89fff 100644
--- a/Modules/CMakeFindDependencyMacro.cmake
+++ b/Modules/CMakeFindDependencyMacro.cmake
@@ -5,18 +5,29 @@
CMakeFindDependencyMacro
-------------------------
-::
+.. command:: find_dependency
+
+ The ``find_dependency()`` macro wraps a :command:`find_package` call for
+ a package dependency::
find_dependency(<dep> [...])
+ It is designed to be used in a
+ :ref:`Package Configuration File <Config File Packages>`
+ (``<package>Config.cmake``). ``find_dependency`` forwards the correct
+ parameters for ``QUIET`` and ``REQUIRED`` which were passed to
+ the original :command:`find_package` call. Any additional arguments
+ specified are forwarded to :command:`find_package`.
+
+ If the dependency could not be found it sets an informative diagnostic
+ message and calls :command:`return` to end processing of the calling
+ package configuration file and return to the :command:`find_package`
+ command that loaded it.
-``find_dependency()`` wraps a :command:`find_package` call for a package
-dependency. It is designed to be used in a <package>Config.cmake file, and it
-forwards the correct parameters for QUIET and REQUIRED which were passed to
-the original :command:`find_package` call. It also sets an informative
-diagnostic message if the dependency could not be found.
+ .. note::
-Any additional arguments specified are forwarded to :command:`find_package`.
+ The call to :command:`return` makes this macro unsuitable to call
+ from :ref:`Find Modules`.
#]=======================================================================]
macro(find_dependency dep)