ECMUseFindModules

Selectively use some of the find modules provided by extra-cmake-modules.

This module is automatically available once extra-cmake-modules has been found, so it is not necessary to include(ECMUseFindModules) explicitly.

ecm_use_find_modules(DIR <dir>
                     MODULES module1.cmake [module2.cmake [...]]
                     [NO_OVERRIDE])

This allows selective use of the find modules provided by ECM, including deferring to CMake’s versions of those modules if it has them. Rather than adding ${ECM_FIND_MODULE_DIR} to CMAKE_MODULE_PATH, you use ecm_use_find_modules() to copy the modules you want to a local (build) directory, and add that to CMAKE_MODULE_PATH.

The find modules given to MODULES will be copied to the directory given by DIR (which should be located in ${CMAKE_BINARY_DIR} and added to CMAKE_MODULE_PATH). If NO_OVERRIDE is given, only modules not also provided by CMake will be copied.

Example:

find_package(ECM REQUIRED)
ecm_use_find_modules(
    DIR ${CMAKE_BINARY_DIR}/cmake
    MODULES FindEGL.cmake
    NO_OVERRIDE
)
set(CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR}/cmake)

This example will make FindEGL.cmake available in your project, but only as long as it is not yet part of CMake. Calls to find_package(EGL) will then make use of this copied module (or the CMake module if it exists).

Another possible use for this macro is to take copies of find modules that can be installed along with config files if they are required as a dependency (for example, if targets provided by the find module are in the link interface of a library).

Since pre-1.0.0.