Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ECM(7)			       Extra CMake Modules			  ECM(7)

NAME
     ecm - Extra CMake Modules

INTRODUCTION
     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 community.

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

USAGE
     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 discarding 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-modules(7) for more information.

     * Find  modules extend the functionality of CMakeas 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.

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

LICENSE
     All code is licensed under the BSD 3-Clause license.

LINKS
     * Home page: https://commits.kde.org/extra-cmake-modules

     * Documentation: https://api.kde.org/ecm/

     * Mailing list: https://mail.kde.org/mailman/listinfo/kde-buildsystem

     * IRC channel: #kde-devel on Libera Chat

     * Git repository: https://commits.kde.org/extra-cmake-modules

COPYRIGHT
     KDE Developers

6.28				  Jul 31, 2026				  ECM(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ecm&sektion=7&manpath=FreeBSD+Ports+15.1.quarterly>

home | help