diff options
author | Alex Merry <alex.merry@kde.org> | 2015-03-14 12:44:49 +0000 |
---|---|---|
committer | Alex Merry <alex.merry@kde.org> | 2015-03-15 18:39:48 +0000 |
commit | 19353c9857d1e26c6508c2fc7dd530e6ee0ef316 (patch) | |
tree | a7ad4ba89dc39cd5b38a7326b200f2456d5b69d0 | |
parent | 03d5bbda45a9cc117fd03e272113ddd9439aebf5 (diff) | |
download | extra-cmake-modules-19353c9857d1e26c6508c2fc7dd530e6ee0ef316.tar.gz extra-cmake-modules-19353c9857d1e26c6508c2fc7dd530e6ee0ef316.tar.bz2 |
Warn about icon filenames with leading characters.
Through a quirk of implementation, old-style icon filenames are accepted
by the new-style ecm_install_icons function. It's too late to change it
now, as that would break existing projects, but we can warn about it.
REVIEW: 122941
-rw-r--r-- | modules/ECMInstallIcons.cmake | 9 | ||||
-rw-r--r-- | tests/ECMInstallIconsTest/CMakeLists.txt | 15 | ||||
-rw-r--r-- | tests/ECMInstallIconsTest/expected-tree/badly-named-files-test/hicolor/16x16/actions/old-style-name.png (renamed from tests/ECMInstallIconsTest/16-apps-cmake.png) | bin | 233 -> 233 bytes | |||
-rw-r--r-- | tests/ECMInstallIconsTest/hi16-actions-old-style-name.png | bin | 0 -> 233 bytes | |||
-rw-r--r-- | tests/ECMInstallIconsTest/subdir/16-apps-cmake.png | bin | 0 -> 233 bytes |
5 files changed, 16 insertions, 8 deletions
diff --git a/modules/ECMInstallIcons.cmake b/modules/ECMInstallIcons.cmake index 34d5a485..79dc5150 100644 --- a/modules/ECMInstallIcons.cmake +++ b/modules/ECMInstallIcons.cmake @@ -223,8 +223,9 @@ function(ecm_install_icons) endif() foreach(icon ${ARG_ICONS}) + get_filename_component(filename "${icon}" NAME) string(REGEX MATCH "([0-9sc]+)\\-([a-z]+)\\-([^/]+)\\.([a-z]+)$" - _dummy "${icon}") + complete_match "${filename}") set(size "${CMAKE_MATCH_1}") set(group "${CMAKE_MATCH_2}") set(name "${CMAKE_MATCH_3}") @@ -234,6 +235,12 @@ function(ecm_install_icons) elseif(NOT size STREQUAL "sc" AND NOT size GREATER 0) message(WARNING "${icon} size (${size}) is invalid - ignoring") else() + if (NOT complete_match STREQUAL filename) + # We can't stop accepting filenames with leading characters, + # because that would break existing projects, so just warn + # about them instead. + message(AUTHOR_WARNING "\"${icon}\" has characters before the size; it should be renamed to \"${size}-${group}-${name}.${ext}\"") + endif() if(NOT _ECM_ICON_GROUP_${group}) message(WARNING "${icon} group (${group}) is not recognized") endif() diff --git a/tests/ECMInstallIconsTest/CMakeLists.txt b/tests/ECMInstallIconsTest/CMakeLists.txt index 85f2d9f5..7fe4ca35 100644 --- a/tests/ECMInstallIconsTest/CMakeLists.txt +++ b/tests/ECMInstallIconsTest/CMakeLists.txt @@ -20,7 +20,7 @@ ecm_install_icons( ICONS 16-actions-computer.png 16-animations-loading.mng - 16-apps-cmake.png + subdir/16-apps-cmake.png 16-categories-system-help.mng 16-emotes-face-smile.png 16-intl-something.png @@ -36,7 +36,7 @@ ecm_install_icons( ICONS 16-actions-computer.png 16-animations-loading.mng - 16-apps-cmake.png + subdir/16-apps-cmake.png 16-categories-system-help.mng 16-emotes-face-smile.png 16-intl-something.png @@ -53,7 +53,7 @@ ecm_install_icons( ICONS 16-actions-computer.png 16-animations-loading.mng - 16-apps-cmake.png + subdir/16-apps-cmake.png 16-categories-system-help.mng 16-emotes-face-smile.png 16-intl-something.png @@ -70,7 +70,7 @@ ecm_install_icons( ICONS 16-actions-computer.png 16-animations-loading.mng - 16-apps-cmake.png + subdir/16-apps-cmake.png 16-categories-system-help.mng 16-emotes-face-smile.png 16-intl-something.png @@ -87,9 +87,10 @@ ecm_install_icons( # all these should be warned about ecm_install_icons( ICONS - aa-actions-badsize.png # ignored - badlynamedfile.png # ignored - 16-actions-badext.txt # copied + aa-actions-badsize.png # ignored + badlynamedfile.png # ignored + 16-actions-badext.txt # copied + hi16-actions-old-style-name.png # copied DESTINATION badly-named-files-test ) diff --git a/tests/ECMInstallIconsTest/16-apps-cmake.png b/tests/ECMInstallIconsTest/expected-tree/badly-named-files-test/hicolor/16x16/actions/old-style-name.png Binary files differindex ed9a1181..ed9a1181 100644 --- a/tests/ECMInstallIconsTest/16-apps-cmake.png +++ b/tests/ECMInstallIconsTest/expected-tree/badly-named-files-test/hicolor/16x16/actions/old-style-name.png diff --git a/tests/ECMInstallIconsTest/hi16-actions-old-style-name.png b/tests/ECMInstallIconsTest/hi16-actions-old-style-name.png Binary files differnew file mode 100644 index 00000000..ed9a1181 --- /dev/null +++ b/tests/ECMInstallIconsTest/hi16-actions-old-style-name.png diff --git a/tests/ECMInstallIconsTest/subdir/16-apps-cmake.png b/tests/ECMInstallIconsTest/subdir/16-apps-cmake.png Binary files differnew file mode 100644 index 00000000..ed9a1181 --- /dev/null +++ b/tests/ECMInstallIconsTest/subdir/16-apps-cmake.png |