diff options
author | Brad King <brad.king@kitware.com> | 2017-09-08 14:41:46 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-09-08 14:44:45 (GMT) |
commit | e48acfc501cec71337a6dbe04e9d61e9224fba6b (patch) | |
tree | d215168b8d64c3b8e3f5866601bbfdff8692dd30 | |
parent | 07a05079d366fad306117a99267b71141d3731b2 (diff) | |
download | CMake-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.cmake | 25 |
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) |