|
NAMEecm-find-modules - ECM Find Modules ReferenceINTRODUCTIONFind modules are used by the CMake find_package command to search for packages that do not provide their own CMake package config files. CMake provides an extensive set of find modules, and Extra CMake Modules (ECM) adds to that.To use ECM’s find modules, you need to tell CMake to find the ECM package, and then add either ${ECM_MODULE_PATH} or ${ECM_FIND_MODULE_DIR} to the CMAKE_MODULE_PATH variable: find_package(ECM REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_FIND_MODULE_DIR}) Using ${ECM_MODULE_PATH} will also make the modules intended for direct use by CMake scripts available (see ecm-modules(7) and ecm-kde-modules(7)). You can also make local copies of find modules using the ecm_use_find_modules function from ECMUseFindModules, which is automatically included when ECM is found: find_package(ECM REQUIRED NO_MODULE) ecm_use_find_modules( DIR "${CMAKE_BINARY_DIR}/cmake" MODULES FindEGL.cmake ) set(CMAKE_MODULE_PATH "${CMAKE_BINARY_DIR}/cmake") This allows selective use of ECM’s find modules, and the NO_OVERRIDE argument can be used to ensure that if CMake ships its own version of that find module, it will be used instead. ALL FIND MODULESFind7zTry to find 7z.If the 7z executable is not in your PATH, you can provide an alternative name or full path location with the 7z_EXECUTABLE variable. This will define the following variables:
If 7z_FOUND is TRUE, it will also define the following imported target:
Since 5.85.0. FindCanberraTry to find Canberra event sound library.This will define the following variables:
If Canberra_FOUND is TRUE, it will also define the following imported target:
In general we recommend using the imported target, as it is easier to use. Bear in mind, however, that if the target is in the link interface of an exported library, it must be made available by the package config file. Since 5.56.0. FindEGLTry to find EGL.This will define the following variables:
If EGL_FOUND is TRUE, it will also define the following imported target:
In general we recommend using the imported target, as it is easier to use. Bear in mind, however, that if the target is in the link interface of an exported library, it must be made available by the package config file. Since pre-1.0.0. FindGLIB2Try to locate the GLib2 library. If found, this will define the following variables:
If GLIB2_FOUND is TRUE, it will also define the following imported target:
Since 5.41.0. FindGperfTry to find GNU gperf.If the gperf executable is not in your PATH, you can provide an alternative name or full path location with the Gperf_EXECUTABLE variable. This will define the following variables:
If Gperf_FOUND is TRUE, it will also define the following imported target:
and the following public function: ecm_gperf_generate(<GperfInput> <OutputFile> <OutputVariable(|target (since 5.83))> [GENERATION_FLAGS <flags>]) Run gperf on <GperfInput> to generate <OutputFile>, adding it to the <OutputVariable> variable which contains the source for the target where <OutputFile> is going to be built or, since KF 5.83, if the given argument is a target, to the list of private sources of that target. The target must not be an alias. The optional GENERATION_FLAGS argument is needed to pass extra parameters to gperf (note you cannot override that way the output file). A simple invocation would be: ecm_gperf_generate(simple.gperf ${CMAKE_CURRENT_BINARY_DIR}/simple.h MySources) Since 5.35.0. FindGradleProvides the ability to build Android AAR libraries using Gradle.This relies on the Qt provided Gradle, so a Qt for Android installation is required. gradle_add_aar(<target> BUIDLFILE build.gradle NAME <aar-name>) This builds an Android AAR library using the given build.gradle file. gradle_install_aar(<target> DESTINATION <dest>) Installs a Android AAR library that has been created with gradle_add_aar. Since 5.76.0. FindIcoToolTry to find icotool.If the icotool executable is not in your PATH, you can provide an alternative name or full path location with the IcoTool_EXECUTABLE variable. This will define the following variables:
If IcoTool_FOUND is TRUE, it will also define the following imported target:
Since 5.49. FindInotify
This will define the following variables:
On Linux and SunOS, the libraries and include directories are empty, even though Inotify_FOUND may be set to TRUE. This is because no special includes or libraries are needed. On other systems these may be needed to use inotify. Since 5.32.0. FindIsoCodesTry to find iso-codes data files. Once done this will define:
Since 5.80.0. FindKF5Find KDE Frameworks 5 with a single find_package() call.This will use the package config files provided by the individual frameworks. For example, if you wish to find KArchive, which presents itself to CMake as KF5Archive (ie: you would do find_package(KF5Archive) to find it directly), you can do find_package(KF5 COMPONENTS Archive) If all the required components (those given in the COMPONENTS argument, but not those given in the OPTIONAL_COMPONENTS argument) are found, KF5_FOUND will be set to true. Otherwise, it will be set to false. Since pre-1.0.0. FindLibExiv2Try to find the Exiv2 library.This will define the following variables:
If LibExiv2_FOUND is TRUE, it will also define the following imported target:
In general we recommend using the imported target, as it is easier to use. Bear in mind, however, that if the target is in the link interface of an exported library, it must be made available by the package config file. Since 5.53.0. FindLibGit2Try to find libgit2 on a Unix system.This will define the following variables:
If LIBGIT2_FOUND is TRUE, it will also define the following imported target:
In general we recommend using the imported target, as it is easier to use. Bear in mind, however, that if the target is in the link interface of an exported library, it must be made available by the package config file. Since 1.3.0. FindLibMountTry to find the libmount library (part of util-linux), once done this will define:
If LibMount_FOUND is TRUE, it will also define the following imported target:
Since 5.83.0 FindLibcapTry to find the setcap binary and cap librariesThis will define:
Since 5.80.0 FindOpenEXRTry to find the OpenEXR libraries.This will define the following variables:
and the following imported targets:
In general we recommend using the imported target, as it is easier to use. Bear in mind, however, that if the target is in the link interface of an exported library, it must be made available by the package config file. Since pre-1.0.0. FindPhoneNumberTry to find PhoneNumber.This is a component-based find module, which makes use of the COMPONENTS and OPTIONAL_COMPONENTS arguments to find_module. The following components are available: PhoneNumber GeoCoding If no components are specified, this module will act as though all components were passed to OPTIONAL_COMPONENTS. This module will define the following variables, independently of the components searched for or found:
For each searched-for components, PhoneNumber_<component>_FOUND will be set to TRUE if the corresponding library was found, and FALSE otherwise. If PhoneNumber_<component>_FOUND is TRUE, the imported target PhoneNumber::<component> will be defined. Since 5.54.0. FindPopplerTry to find Poppler.This is a component-based find module, which makes use of the COMPONENTS and OPTIONAL_COMPONENTS arguments to find_module. The following components are available: Core Cpp Qt5 Qt4 Glib If no components are specified, this module will act as though all components were passed to OPTIONAL_COMPONENTS. This module will define the following variables, independently of the components searched for or found:
For each searched-for components, Poppler_<component>_FOUND will be set to TRUE if the corresponding Poppler library was found, and FALSE otherwise. If Poppler_<component>_FOUND is TRUE, the imported target Poppler::<component> will be defined. This module will also attempt to determine Poppler_*_VERSION variables for each imported target, although Poppler_VERSION should normally be sufficient. In general we recommend using the imported targets, as they are easier to use and provide more control. Bear in mind, however, that if any target is in the link interface of an exported library, it must be made available by the package config file. Since 5.19 FindPulseAudioTry to locate the PulseAudio library. If found, this will define the following variables:
If PulseAudio_FOUND is TRUE, it will also define the following imported target:
Since 5.41.0. FindQtWaylandScannerTry to find qtwaylandscanner.If the qtwaylandscanner executable is not in your PATH, you can provide an alternative name or full path location with the QtWaylandScanner_EXECUTABLE variable. This will define the following variables:
If QtWaylandScanner_FOUND is TRUE, it will also define the following imported target:
This module provides the following functions to generate C++ protocol implementations:
ecm_add_qtwayland_client_protocol(<source_files_var> PROTOCOL <xmlfile> BASENAME <basename> [PREFIX <prefix>]) Generate C++ wrapper to Wayland client protocol files from <xmlfile> XML definition for the <basename> interface and append those files to <source_files_var>. Pass the <prefix> argument if the interface names don’t start with qt_ or wl_. WaylandScanner is required and will be searched for. ecm_add_qtwayland_server_protocol(<source_files_var> PROTOCOL <xmlfile> BASENAME <basename> [PREFIX <prefix>]) Generate C++ wrapper to Wayland server protocol files from <xmlfile> XML definition for the <basename> interface and append those files to <source_files_var>. Pass the <prefix> argument if the interface names don’t start with qt_ or wl_. WaylandScanner is required and will be searched for. Since 1.4.0. FindSasl2Try to find the SASL2 library.This will define the following variables:
If Sasl2_FOUND is TRUE, the following imported target will be available:
Since 5.41.0. FindSeccompTry to locate the libseccomp library.This will define the following variables:
If Seccomp_FOUND is TRUE, it will also define the following imported target:
Since 5.44.0. FindSharedMimeInfoTry to find the shared-mime-info package.This will define the following variables:
and the following imported targets:
The follow macro is available: update_xdg_mimetypes(<path>) Updates the XDG mime database at install time (unless the $DESTDIR environment variable is set, in which case it is up to package managers to perform this task). Since pre-1.0.0. FindTaglibTry to find the Taglib library.This will define the following variables:
If Taglib_FOUND is TRUE, it will also define the following imported target:
Since 5.72.0 FindUDevTry to find the UDev library.This will define the following variables:
If UDev_FOUND is TRUE, it will also define the following imported target:
Since 5.57.0. FindWaylandTry to find Wayland.This is a component-based find module, which makes use of the COMPONENTS and OPTIONAL_COMPONENTS arguments to find_module. The following components are available: Client Server Cursor Egl If no components are specified, this module will act as though all components were passed to OPTIONAL_COMPONENTS. This module will define the following variables, independently of the components searched for or found:
For each searched-for components, Wayland_<component>_FOUND will be set to TRUE if the corresponding Wayland library was found, and FALSE otherwise. If Wayland_<component>_FOUND is TRUE, the imported target Wayland::<component> will be defined. This module will also attempt to determine Wayland_*_VERSION variables for each imported target, although Wayland_VERSION should normally be sufficient. In general we recommend using the imported targets, as they are easier to use and provide more control. Bear in mind, however, that if any target is in the link interface of an exported library, it must be made available by the package config file. Since pre-1.0.0. FindWaylandProtocolsTry to find wayland-protocols on a Unix system.This will define the following variables:
FindWaylandScannerTry to find wayland-scanner.If the wayland-scanner executable is not in your PATH, you can provide an alternative name or full path location with the WaylandScanner_EXECUTABLE variable. This will define the following variables:
If WaylandScanner_FOUND is TRUE, it will also define the following imported target:
This module provides the following functions to generate C protocol implementations:
ecm_add_wayland_client_protocol(<source_files_var> PROTOCOL <xmlfile> BASENAME <basename>) Generate Wayland client protocol files from <xmlfile> XML definition for the <basename> interface and append those files to <source_files_var>. ecm_add_wayland_server_protocol(<source_files_var> PROTOCOL <xmlfile> BASENAME <basename>) Generate Wayland server protocol files from <xmlfile> XML definition for the <basename> interface and append those files to <source_files_var>. Since 1.4.0. FindX11_XCBTry to find the X11 XCB compatibility library.This will define the following variables:
If X11_XCB_FOUND is TRUE, it will also define the following imported target:
In general we recommend using the imported target, as it is easier to use. Bear in mind, however, that if the target is in the link interface of an exported library, it must be made available by the package config file. Since pre-1.0.0. FindXCBTry to find XCB.This is a component-based find module, which makes use of the COMPONENTS and OPTIONAL_COMPONENTS arguments to find_module. The following components are available: XCB ATOM AUX COMPOSITE CURSOR DAMAGE DPMS DRI2 DRI3 EVENT EWMH GLX ICCCM IMAGE KEYSYMS PRESENT RANDR RECORD RENDER RENDERUTIL RES SCREENSAVER SHAPE SHM SYNC UTIL XEVIE XF86DRI XFIXES XINERAMA XINPUT XKB XPRINT XTEST XV XVMC If no components are specified, this module will act as though all components except XINPUT (which is considered unstable) were passed to OPTIONAL_COMPONENTS. This module will define the following variables, independently of the components searched for or found:
For each searched-for components, XCB_<component>_FOUND will be set to true if the corresponding xcb library was found, and false otherwise. If XCB_<component>_FOUND is true, the imported target XCB::<component> will be defined. This module will also attempt to determine XCB_*_VERSION variables for each imported target, although XCB_VERSION should normally be sufficient. In general we recommend using the imported targets, as they are easier to use and provide more control. Bear in mind, however, that if any target is in the link interface of an exported library, it must be made available by the package config file. Since pre-1.0.0. FindepoxyTry to find libepoxy on a Unix system.This will define the following variables:
If epoxy_FOUND is TRUE, it will also define the following imported target:
In general we recommend using the imported target, as it is easier to use. Bear in mind, however, that if the target is in the link interface of an exported library, it must be made available by the package config file. FindgzipTry to find gzip.If the gzip executable is not in your PATH, you can provide an alternative name or full path location with the gzip_EXECUTABLE variable. This will define the following variables:
If gzip_FOUND is TRUE, it will also define the following imported target:
Since 5.85.0. SEE ALSOecm(7), ecm-modules(7), ecm-kde-modules(7)COPYRIGHTKDE Developers
Visit the GSP FreeBSD Man Page Interface. |