From: alex-z Date: Wed, 8 Jun 2022 09:44:39 +0000 (+0300) Subject: Generate state icons from SVG in CMake. X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~15^2~166^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=6ef296d823ab7f9a3c1817126c18e89e8baad792;p=nextcloud-desktop.git Generate state icons from SVG in CMake. Signed-off-by: alex-z --- diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 920996836..0f0d4c9e5 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -376,7 +376,7 @@ endif() function(generate_sized_png_from_svg icon_path size) set(options) - set(oneValueArgs OUTPUT_ICON_NAME OUTPUT_ICON_PATH) + set(oneValueArgs OUTPUT_ICON_NAME OUTPUT_ICON_FULL_NAME_WLE OUTPUT_ICON_PATH) set(multiValueArgs) cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) @@ -392,11 +392,17 @@ function(generate_sized_png_from_svg icon_path size) set(icon_name_dir ${ARG_OUTPUT_ICON_PATH}) endif () - if (EXISTS "${icon_name_dir}/${size}-${icon_name_wle}.png") + set(output_icon_full_name_wle "${size}-${icon_name_wle}") + + if (ARG_OUTPUT_ICON_FULL_NAME_WLE) + set(output_icon_full_name_wle ${ARG_OUTPUT_ICON_FULL_NAME_WLE}) + endif () + + if (EXISTS "${icon_name_dir}/${output_icon_full_name_wle}.png") return() endif() - set(icon_output_name "${size}-${icon_name_wle}.png") + set(icon_output_name "${output_icon_full_name_wle}.png") message(STATUS "Generate ${icon_output_name}") execute_process(COMMAND "${SVG_CONVERTER}" -w ${size} -h ${size} "${icon_path}" -o "${icon_output_name}" @@ -413,6 +419,23 @@ function(generate_sized_png_from_svg icon_path size) endif() endfunction() +set(STATE_ICONS_COLORS colored black white) + +foreach(state_icons_color ${STATE_ICONS_COLORS}) + set(STATE_ICONS_PATH "${theme_dir}/${state_icons_color}/") + + message("Generating state icons from SVG in path: "${STATE_ICONS_PATH}) + + file(GLOB_RECURSE STATE_ICONS_SVG "${STATE_ICONS_PATH}/state-*.svg") + + foreach(state_icon_svg ${STATE_ICONS_SVG}) + get_filename_component(status_icon_name_wle ${state_icon_svg} NAME_WLE) + foreach(size IN ITEMS 16;32;64;128;256) + generate_sized_png_from_svg(${state_icon_svg} ${size} OUTPUT_ICON_FULL_NAME_WLE "${status_icon_name_wle}-${size}") + endforeach() + endforeach() +endforeach() + if ((APPLICATION_ICON_SET MATCHES "PNG") AND (NOT EXISTS "${theme_dir}/colored/${APPLICATION_ICON_NAME}-icon.svg"))