Installs icons, sorting them into the correct directories according to the icon naming specification.

ecm_install_icons(ICONS <icon> [<icon> [...]]
                  DESTINATION <icon_install_dir>
                  [LANG <l10n_code>]
                  [THEME <theme>])

The given icons, whose names must match the pattern:


will be installed to the appropriate subdirectory of DESTINATION according to the icon naming scheme. By default, they are installed to the “hicolor” theme, but this can be changed using the THEME argument. If the icons are localized, the LANG argument can be used to install them in a locale-specific directory.

<size> is a numeric pixel size (typically 16, 22, 32, 48, 64, 128 or 256) or sc for scalable (SVG) files, <group> is one of the standard icon groups (actions, animations, apps, categories, devices, emblems, emotes, intl, mimetypes, places, status) and <ext> is one of .png, .mng or .svgz.

The typical installation directory is share/icons.

ecm_install_icons(ICONS 22-actions-menu_new.png
                  DESTINATION share/icons)

The above code will install the file 22-actions-menu_new.png as ${CMAKE_INSTALL_PREFIX}/share/icons/<theme>/22x22/actions/menu_new.png

Users of the KDEInstallDirs module would normally use ${KDE_INSTALL_ICONDIR} as the DESTINATION, while users of the GNUInstallDirs module should use ${CMAKE_INSTALL_DATAROOTDIR}/icons.

An old form of arguments will also be accepted:

ecm_install_icons(<icon_install_dir> [<l10n_code>])

This matches files named like:


where <theme> is one of

  • hi for hicolor

  • lo for locolor

  • cr for the Crystal icon theme

  • ox for the Oxygen icon theme

  • br for the Breeze icon theme

With this syntax, the file hi22-actions-menu_new.png would be installed into <icon_install_dir>/hicolor/22x22/actions/menu_new.png

Since pre-1.0.0.