Index: docs/find-module/FindIcoTool.rst =================================================================== --- /dev/null +++ docs/find-module/FindIcoTool.rst @@ -0,0 +1 @@ +.. ecm-module:: ../../find-modules/FindIcoTool.cmake Index: find-modules/FindIcoTool.cmake =================================================================== --- find-modules/FindIcoTool.cmake +++ find-modules/FindIcoTool.cmake @@ -1,4 +1,56 @@ +#.rst: +# FindIcoTool +# ----------- +# +# Try to find icotool. +# +# If the icotool executable is not in your PATH, you can provide +# an alternative name or full path location with the ``IcoTool_EXECUTABLE`` +# variable. +# +# This will define the following variables: +# +# ``IcoTool_FOUND`` +# True if icotool is available. +# +# ``IcoTool_EXECUTABLE`` +# The icotool executable. +# +# If ``IcoTool_FOUND`` is TRUE, it will also define the following imported +# target: +# +# ``IcoTool::IcoTool`` +# The icotool executable. +# +# Since 5.49. + +#============================================================================= # Copyright 2017 Vincent Pinon +# Copyright 2014 Alex Merry +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +#============================================================================= include(${CMAKE_CURRENT_LIST_DIR}/ECMFindModuleHelpersStub.cmake) ecm_find_package_version_check(IcoTool) Index: tests/ECMAddAppIconTest/CMakeLists.txt =================================================================== --- tests/ECMAddAppIconTest/CMakeLists.txt +++ tests/ECMAddAppIconTest/CMakeLists.txt @@ -9,27 +9,34 @@ include(ECMAddAppIcon) set(ICONS 16-category-name.png 128-category-name.png) -set(SIDEBAR_ICONS 16-category-name-sidebar.png 128-category-name-sidebar.png ) +set(SIDEBAR_ICONS 16-category-name-sidebar.png 128-category-name-sidebar.png) ecm_add_app_icon(OUT ICONS ${ICONS} SIDEBAR_ICONS ${SIDEBAR_ICONS} OUTFILE_BASENAME "SuperBasename") if(WIN32 OR APPLE) list(LENGTH OUT out_count) if(out_count EQUAL 0) - message(FATAL_ERROR "ecm_add_app_icon() haven't produced anything") + message(FATAL_ERROR "ecm_add_app_icon() hasn't produced anything") endif() if(WIN32) set(extension_to_test "rc") elseif(APPLE) - set(extension_to_test "iconset") + set(extension_to_test "icns") endif() if(NOT OUT MATCHES "SuperBasename.${extension_to_test}") - message(FATAL_ERROR "ecm_add_app_icon() did not respect OUTFILE_BASENAME") + message(FATAL_ERROR "ecm_add_app_icon() did not respect OUTFILE_BASENAME: ${OUT}") endif() endif() +if(APPLE) + list(APPEND expected_icons "icon_16x16.png" "icon_128x128.png" "sidebar_16x16.png" "sidebar_32x32.png") + foreach(expected_icon ${expected_icons}) + list(APPEND OUT "${CMAKE_CURRENT_BINARY_DIR}/SuperBasename.iconset/${expected_icon}") + endforeach() +endif() + add_custom_target(t ALL DEPENDS ${OUT}) # this will be run by CTest