cmake_find_package_multi
Warning
This is an experimental feature subject to breaking changes in future releases.
This generator is similar to the cmake_find_package generator but it allows working with
multi-configuration projects like Visual Studio
with both Debug
and Release
. But there are some differences:
Only works with CMake > 3.0
It doesn’t generate
FindXXX.cmake
modules butXXXConfig.cmake
files.The “global” approach is not supported, only “modern” CMake by using targets.
Usage
$ conan install . -g cmake_find_package_multi -s build_type=Debug
$ conan install . -g cmake_find_package_multi -s build_type=Release
These commands will generate several files for each dependency in your graph, including a XXXConfig.cmake
that can be located
by the CMake find_package(XXX CONFIG) command, with XXX as the package name.
Important
Add the CONFIG
option to find_package
so that module mode is explicitly skipped by CMake. This helps to
solve issues when there is for example a FindXXXX.cmake
file in CMake’s default modules directory that could be loaded instead of the
XXXXConfig.cmake
generated by Conan.
The name of the files follows the pattern <package_name>Config.cmake
. So for the zlib/1.2.11@conan/stable
package,
a zlibConfig.cmake
file will be generated.
See also
Check the section cmake_find_package_multi to read more about this generator and the adjusted CMake variables/targets.