diff options
| -rw-r--r-- | modules/ECMInstallIcons.cmake | 10 | ||||
| -rw-r--r-- | tests/ECMInstallIconsTest/CMakeLists.txt | 7 | ||||
| -rw-r--r-- | tests/ECMInstallIconsTest/check_tree.cmake.in | 7 | ||||
| -rw-r--r-- | tests/ECMInstallIconsTest/expected-tree/badly-named-files-test/hicolor/icon-theme.cache | bin | 0 -> 124 bytes | |||
| -rw-r--r-- | tests/ECMInstallIconsTest/expected-tree/lang-test/hicolor/icon-theme.cache | bin | 0 -> 548 bytes | |||
| -rw-r--r-- | tests/ECMInstallIconsTest/expected-tree/multi-file-test/hicolor/icon-theme.cache | bin | 0 -> 472 bytes | |||
| -rw-r--r-- | tests/ECMInstallIconsTest/expected-tree/single-file-test/hicolor/icon-theme.cache | bin | 0 -> 120 bytes | |||
| -rw-r--r-- | tests/ECMInstallIconsTest/expected-tree/themed-lang-test/oxygen/icon-theme.cache | bin | 0 -> 548 bytes | |||
| -rw-r--r-- | tests/ECMInstallIconsTest/expected-tree/themed-test/theme-name-2/icon-theme.cache | bin | 0 -> 472 bytes | |||
| -rw-r--r-- | tests/ECMInstallIconsTest/expected-tree/v1-icons/crystalsvg/icon-theme.cache | bin | 0 -> 164 bytes | |||
| -rw-r--r-- | tests/ECMInstallIconsTest/expected-tree/v1-icons/hicolor/icon-theme.cache | bin | 0 -> 452 bytes | 
11 files changed, 23 insertions, 1 deletions
| diff --git a/modules/ECMInstallIcons.cmake b/modules/ECMInstallIcons.cmake index 920c9490..8db486e7 100644 --- a/modules/ECMInstallIcons.cmake +++ b/modules/ECMInstallIcons.cmake @@ -111,6 +111,8 @@ macro(_ecm_install_icons_v1 _defaultpath)        set(_l10n_SUBDIR ".")     endif(_lang) +   set(_themes) +     # first the png icons     file(GLOB _icons *.png)     foreach (_current_ICON ${_icons} ) @@ -123,6 +125,7 @@ macro(_ecm_install_icons_v1 _defaultpath)        set(_theme_GROUP ${_ECM_ICON_THEME_${_type}})        if( _theme_GROUP) +         list(APPEND _themes "${_theme_GROUP}")           _ECM_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake                      ${_defaultpath}/${_theme_GROUP}/${_size}x${_size}                      ${_group} ${_current_ICON} ${_name} ${_l10n_SUBDIR}) @@ -141,6 +144,7 @@ macro(_ecm_install_icons_v1 _defaultpath)        set(_theme_GROUP ${_ECM_ICON_THEME_${_type}})        if( _theme_GROUP) +         list(APPEND _themes "${_theme_GROUP}")           _ECM_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake                  ${_defaultpath}/${_theme_GROUP}/${_size}x${_size}                  ${_group} ${_current_ICON} ${_name} ${_l10n_SUBDIR}) @@ -158,13 +162,17 @@ macro(_ecm_install_icons_v1 _defaultpath)        set(_theme_GROUP ${_ECM_ICON_THEME_${_type}})        if( _theme_GROUP) +         list(APPEND _themes "${_theme_GROUP}")            _ECM_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake                              ${_defaultpath}/${_theme_GROUP}/scalable                              ${_group} ${_current_ICON} ${_name} ${_l10n_SUBDIR})        endif( _theme_GROUP)     endforeach (_current_ICON) -   _ecm_update_iconcache("${_defaultpath}" hicolor) +   list(REMOVE_DUPLICATES _themes) +   foreach(_theme ${_themes}) +       _ecm_update_iconcache("${_defaultpath}" "${_theme}") +   endforeach()  endmacro() diff --git a/tests/ECMInstallIconsTest/CMakeLists.txt b/tests/ECMInstallIconsTest/CMakeLists.txt index 7fe4ca35..738cba91 100644 --- a/tests/ECMInstallIconsTest/CMakeLists.txt +++ b/tests/ECMInstallIconsTest/CMakeLists.txt @@ -94,5 +94,12 @@ ecm_install_icons(      DESTINATION badly-named-files-test  ) +find_program(icon_cache_generator NAMES gtk-update-icon-cache) +if (icon_cache_generator) +    set(GENERATE_ICON_CACHE TRUE) +else() +    set(GENERATE_ICON_CACHE FALSE) +endif() +  # this will be run by CTest  configure_file(check_tree.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/check_tree.cmake" @ONLY) diff --git a/tests/ECMInstallIconsTest/check_tree.cmake.in b/tests/ECMInstallIconsTest/check_tree.cmake.in index 6d14246b..b9da1715 100644 --- a/tests/ECMInstallIconsTest/check_tree.cmake.in +++ b/tests/ECMInstallIconsTest/check_tree.cmake.in @@ -1,8 +1,15 @@  set(EXP_TREE "@CMAKE_CURRENT_SOURCE_DIR@/expected-tree")  set(ACTUAL_TREE "@CMAKE_INSTALL_PREFIX@") +set(GENERATE_ICON_CACHE "@GENERATE_ICON_CACHE@")  file(GLOB_RECURSE exp_files RELATIVE "${EXP_TREE}" "${EXP_TREE}/*")  file(GLOB_RECURSE actual_files RELATIVE "${ACTUAL_TREE}" "${ACTUAL_TREE}/*") +if (NOT GENERATE_ICON_CACHE) +    file(GLOB_RECURSE cache_files RELATIVE "${EXP_TREE}" "${EXP_TREE}/*.cache") +    foreach(f ${cache_files}) +        list(REMOVE_ITEM exp_files "${f}") +    endforeach() +endif()  list(SORT exp_files)  list(SORT actual_files) diff --git a/tests/ECMInstallIconsTest/expected-tree/badly-named-files-test/hicolor/icon-theme.cache b/tests/ECMInstallIconsTest/expected-tree/badly-named-files-test/hicolor/icon-theme.cacheBinary files differ new file mode 100644 index 00000000..50d52976 --- /dev/null +++ b/tests/ECMInstallIconsTest/expected-tree/badly-named-files-test/hicolor/icon-theme.cache diff --git a/tests/ECMInstallIconsTest/expected-tree/lang-test/hicolor/icon-theme.cache b/tests/ECMInstallIconsTest/expected-tree/lang-test/hicolor/icon-theme.cacheBinary files differ new file mode 100644 index 00000000..babadff0 --- /dev/null +++ b/tests/ECMInstallIconsTest/expected-tree/lang-test/hicolor/icon-theme.cache diff --git a/tests/ECMInstallIconsTest/expected-tree/multi-file-test/hicolor/icon-theme.cache b/tests/ECMInstallIconsTest/expected-tree/multi-file-test/hicolor/icon-theme.cacheBinary files differ new file mode 100644 index 00000000..60ac05d6 --- /dev/null +++ b/tests/ECMInstallIconsTest/expected-tree/multi-file-test/hicolor/icon-theme.cache diff --git a/tests/ECMInstallIconsTest/expected-tree/single-file-test/hicolor/icon-theme.cache b/tests/ECMInstallIconsTest/expected-tree/single-file-test/hicolor/icon-theme.cacheBinary files differ new file mode 100644 index 00000000..f385659f --- /dev/null +++ b/tests/ECMInstallIconsTest/expected-tree/single-file-test/hicolor/icon-theme.cache diff --git a/tests/ECMInstallIconsTest/expected-tree/themed-lang-test/oxygen/icon-theme.cache b/tests/ECMInstallIconsTest/expected-tree/themed-lang-test/oxygen/icon-theme.cacheBinary files differ new file mode 100644 index 00000000..babadff0 --- /dev/null +++ b/tests/ECMInstallIconsTest/expected-tree/themed-lang-test/oxygen/icon-theme.cache diff --git a/tests/ECMInstallIconsTest/expected-tree/themed-test/theme-name-2/icon-theme.cache b/tests/ECMInstallIconsTest/expected-tree/themed-test/theme-name-2/icon-theme.cacheBinary files differ new file mode 100644 index 00000000..60ac05d6 --- /dev/null +++ b/tests/ECMInstallIconsTest/expected-tree/themed-test/theme-name-2/icon-theme.cache diff --git a/tests/ECMInstallIconsTest/expected-tree/v1-icons/crystalsvg/icon-theme.cache b/tests/ECMInstallIconsTest/expected-tree/v1-icons/crystalsvg/icon-theme.cacheBinary files differ new file mode 100644 index 00000000..8b9c8d0c --- /dev/null +++ b/tests/ECMInstallIconsTest/expected-tree/v1-icons/crystalsvg/icon-theme.cache diff --git a/tests/ECMInstallIconsTest/expected-tree/v1-icons/hicolor/icon-theme.cache b/tests/ECMInstallIconsTest/expected-tree/v1-icons/hicolor/icon-theme.cacheBinary files differ new file mode 100644 index 00000000..ab56337b --- /dev/null +++ b/tests/ECMInstallIconsTest/expected-tree/v1-icons/hicolor/icon-theme.cache | 
