From a53478e99a6f6b90ff727c723c137ffc09d4e428 Mon Sep 17 00:00:00 2001 From: xengineering Date: Thu, 26 Dec 2024 11:41:13 +0100 Subject: icons: Move build system code here The decision to license the whole repository based on CC-BY-SA 4.0 removes the restriction to store build system code in a separate directory. Thus it is more straight forward to store the icon related CMake code in the icons directory. --- icons/CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 icons/CMakeLists.txt (limited to 'icons/CMakeLists.txt') diff --git a/icons/CMakeLists.txt b/icons/CMakeLists.txt new file mode 100644 index 0000000..5c17877 --- /dev/null +++ b/icons/CMakeLists.txt @@ -0,0 +1,50 @@ +file(GLOB icon_files "${CMAKE_CURRENT_SOURCE_DIR}/*.svg") + +set(formats + pdf + svg + png + ico +) + +find_program(imagemagick magick convert) + +foreach(icon_file ${icon_files}) + get_filename_component(icon ${icon_file} NAME_WE) + foreach(format ${formats}) + set(source "${CMAKE_CURRENT_SOURCE_DIR}/${icon}.svg") + set(sink "${CMAKE_CURRENT_BINARY_DIR}/${format}/${icon}.${format}") + if(format STREQUAL ico) + set(intermediate "${CMAKE_CURRENT_BINARY_DIR}/png/${icon}.png") + add_custom_command( + OUTPUT + ${sink} + COMMAND + ${imagemagick} + ${intermediate} + ${sink} + DEPENDS + ${intermediate} + ) + else() + add_custom_command( + OUTPUT + ${sink} + COMMAND + SELF_CALL=xxx # https://gitlab.com/inkscape/inkscape/-/issues/4716 + inkscape + --export-type=${format} + --export-filename=${sink} + ${source} + DEPENDS + ${source} + ) + endif() + add_custom_target( + "icon-${format}-${icon}" + ALL + DEPENDS + ${sink} + ) + endforeach() +endforeach() -- cgit v1.2.3-70-g09d2