diff options
author | xengineering <me@xengineering.eu> | 2024-12-26 11:41:13 +0100 |
---|---|---|
committer | xengineering <me@xengineering.eu> | 2024-12-26 11:41:13 +0100 |
commit | a53478e99a6f6b90ff727c723c137ffc09d4e428 (patch) | |
tree | c111830d331c6e5cfaf8624014466a7d0e46e4e5 /icons/CMakeLists.txt | |
parent | 00ab31053f71944a577ff802a503d73b8c08a247 (diff) | |
download | graphics-inkscape-a53478e99a6f6b90ff727c723c137ffc09d4e428.tar graphics-inkscape-a53478e99a6f6b90ff727c723c137ffc09d4e428.tar.zst graphics-inkscape-a53478e99a6f6b90ff727c723c137ffc09d4e428.zip |
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.
Diffstat (limited to 'icons/CMakeLists.txt')
-rw-r--r-- | icons/CMakeLists.txt | 50 |
1 files changed, 50 insertions, 0 deletions
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() |