ECM(7) - Linux man page online | Overview, conventions, and miscellany

Extra CMake Modules.

Mar 12, 2018
ECM(7) Extra CMake Modules ECM(7)


ecm - Extra CMake Modules


The Extra CMake Modules package, or ECM, adds to the modules provided by CMake, including ones used by find_package() to find common software, ones that can be used directly in CMakeLists.txt files to perform common tasks and toolchain files that must be specified on the commandline by the user. In addition, it provides common build settings used in software produced by the KDE commu‐ nity. While the driving force of this module is to reduce duplication in CMake scripts across KDE software, it is intended to be useful for any software that uses the CMake build sys‐ tem.


To use ECM, add the following to your CMakeLists.txt: find_package(ECM REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) (note that you may want to append ${ECM_MODULE_PATH} to CMAKE_MODULE_PATH rather than dis‐ carding the existing value). You can then just include the modules you require, or use find_package() as needed. For example: include(ECMInstallIcons) Developers of KDE software will often want to use the KDE standard settings provided by ECM; they can do the following: find_package(ECM REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) include(KDEInstallDirs) include(KDECompilerSettings) include(KDECMakeSettings) Note that any combination of the above includes can be used if you only want some of the settings. Some of the functionality of KDECMakeSettings can also be selectively disabled. Organization ECM provides four different types of modules. · Core modules provide helpful macros for use in project CMake scripts. See ecm-mod‐ ules(7) for more information. · Find modules extend the functionality of CMake’s find_package() command. See ecm-find-modules(7) for more information. · KDE modules provide common settings for software produced by KDE; much of this may also be useful to other projects. See ecm-kde-modules(7) for more information. · Toolchain files change the build tools and targets used by CMake. See ecm-toolchains(7) for more information. The ${ECM_MODULE_DIR}, ${ECM_FIND_MODULE_DIR} and ${ECM_KDE_MODULE_DIR} variables may be used instead of ${ECM_MODULE_PATH} if you only need some of this functionality.


The ecm-developer(7) manual contains more information about developing for Extra CMake Modules.


All code is licensed under the BSD 3-Clause license.
· Home page: · Documentation: · Mailing list: · IRC channel: #kde-devel on Freenode · Git repository:
KDE Developers
5.44 Mar 12, 2018 ECM(7)
This manual Reference Other manuals
ecm(7) referred by ecm-find-modules(7) | ecm-kde-modules(7) | ecm-modules(7) | ecm-toolchains(7)
refer to ecm-developer(7) | ecm-find-modules(7) | ecm-kde-modules(7) | ecm-toolchains(7)
Download raw manual
Index Extra CMake Modules (+6) 5.44 (+6) № 7 (+1560)
Go top