diff options
author | Cristian Adam <cristian.adam@gmail.com> | 2019-05-20 19:32:24 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-05-21 14:29:47 (GMT) |
commit | 26a99da206526efb203d0e448d7e095a07bec2fd (patch) | |
tree | 45d75b3710bdae0bc373993c2ad47788ce70cdb7 /Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst | |
parent | c365243a3a282523062b5378898aa4fe6436f8fb (diff) | |
download | CMake-26a99da206526efb203d0e448d7e095a07bec2fd.zip CMake-26a99da206526efb203d0e448d7e095a07bec2fd.tar.gz CMake-26a99da206526efb203d0e448d7e095a07bec2fd.tar.bz2 |
find_package: Add option to prefer Config mode
Add a `CMAKE_FIND_PACKAGE_PREFER_CONFIG` variable to tell
`find_package` calls to look for a package configuration file
first even if a find module is available.
Fixes: #16805, #19236
Diffstat (limited to 'Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst')
-rw-r--r-- | Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst b/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst new file mode 100644 index 0000000..db658a1 --- /dev/null +++ b/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst @@ -0,0 +1,27 @@ +CMAKE_FIND_PACKAGE_PREFER_CONFIG +--------------------------------- + +Tell :command:`find_package` to try "Config" mode before "Module" mode if no +mode was specified. + +The command :command:`find_package` operates without an explicit mode when +the reduced signature is used without the ``MODULE`` option. In this case, +by default, CMake first tries Module mode by searching for a +``Find<pkg>.cmake`` module. If it fails, CMake then searches for the package +using Config mode. + +Set ``CMAKE_FIND_PACKAGE_PREFER_CONFIG`` to ``TRUE`` to tell +:command:`find_package` to first search using Config mode before falling back +to Module mode. + +This variable may be useful when a developer has compiled a custom version of +a common library and wishes to link it to a dependent project. If this +variable is set to ``TRUE``, it would prevent a dependent project's call +to :command:`find_package` from selecting the default library located by the +system's ``Find<pkg>.cmake`` module before finding the developer's custom +built library. + +Once this variable is set, it is the responsibility of the exported +``<pkg>Config.cmake`` files to provide the same result variables as the +``Find<pkg>.cmake`` modules so that dependent projects can use them +interchangeably. |