ECMUseFindModules — Extra CMake Modules 5.115.0 documentation

# 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.