[gimp/meson: 20/127] Add tools first. Implement icons and source generation. TODO : find workaround for icons+subdir gene



commit 5c16d25c70febff4b4602e51526920400d078874
Author: Félix Piédallu <felix piedallu me>
Date:   Thu Nov 16 17:21:59 2017 +0100

    Add tools first. Implement icons and source generation.
    TODO : find workaround for icons+subdir generation.

 app/core/meson.build                |    1 +
 icons/Color/meson.build             |   57 ++
 icons/Symbolic-Inverted/meson.build |   68 +++
 icons/Symbolic/meson.build          |   57 ++
 icons/meson.build                   | 1108 +++++++++++++++++++++++++++++++++++
 libgimpwidgets/meson.build          |    3 +-
 meson.build                         |    8 +-
 themes/meson.build                  |    2 +-
 tools/meson.build                   |    7 +-
 9 files changed, 1305 insertions(+), 6 deletions(-)
---
diff --git a/app/core/meson.build b/app/core/meson.build
index 3cc02e9..9b47814 100644
--- a/app/core/meson.build
+++ b/app/core/meson.build
@@ -247,6 +247,7 @@ libappcore_sources = [
   appcoremarshal,
   cursors_sources,
   pickers_sources,
+  icons_core_sources,
 ]
 
 libappcore = static_library('appcore',
diff --git a/icons/Color/meson.build b/icons/Color/meson.build
new file mode 100644
index 0000000..a2bd971
--- /dev/null
+++ b/icons/Color/meson.build
@@ -0,0 +1,57 @@
+
+install_data('index.theme',
+  install_dir: join_paths(gimpiconsdir, theme)
+)
+
+foreach icon_info : all_icons
+  icons_dir = icon_info[0]
+  icons_list= icon_info[1]
+  install_data(icons_list,
+    install_dir: join_paths(gimpiconsdir, theme, icons_dir, 'apps')
+  )
+endforeach
+
+
+icons_core = [ '64/gimp-question.png', ]
+icons_imgs = [ '64/gimp-wilber-eek.png', ]
+
+resourcename = 'gimp-core-pixbufs'
+xml_filename = resourcename + '.gresource.xml'
+xml_content  = '<?xml version="1.0" encoding="UTF-8"?>\n'
+xml_content += '<gresources>\n'
+xml_content += '  <gresource prefix="/org/gimp/icons">\n'
+foreach file : icons_core
+  xml_content+='    <file preprocess="to-pixdata">'+ file +'</file>\n'
+endforeach
+xml_content += '  </gresource>\n'
+xml_content += '</gresources>\n'
+run_command('bash', '-c',
+  'cat <<EOS > '+ join_paths(meson.current_source_dir(), xml_filename) +'\n'
+  + xml_content + '\nEOS',
+)
+icons_core_sources = gnome.compile_resources(
+  resourcename,
+  xml_filename,
+  c_name: resourcename.underscorify(),
+)
+
+
+resourcename = 'gimp-icon-pixbufs'
+xml_filename = resourcename + '.gresource.xml'
+xml_content  = '<?xml version="1.0" encoding="UTF-8"?>\n'
+xml_content += '<gresources>\n'
+xml_content += '  <gresource prefix="/org/gimp/icons">\n'
+foreach file : icons_imgs
+  xml_content+='    <file preprocess="to-pixdata">'+ file +'</file>\n'
+endforeach
+xml_content += '  </gresource>\n'
+xml_content += '</gresources>\n'
+run_command('bash', '-c',
+  'cat <<EOS > '+ join_paths(meson.current_source_dir(), xml_filename) +'\n'
+  + xml_content + '\nEOS',
+)
+icons_imgs_sources = gnome.compile_resources(
+  resourcename,
+  xml_filename,
+  c_name: resourcename.underscorify(),
+)
diff --git a/icons/Symbolic-Inverted/meson.build b/icons/Symbolic-Inverted/meson.build
new file mode 100644
index 0000000..35d9fb1
--- /dev/null
+++ b/icons/Symbolic-Inverted/meson.build
@@ -0,0 +1,68 @@
+
+install_data('index.theme',
+  install_dir: join_paths(gimpiconsdir, theme)
+)
+
+foreach icon_info : all_icons
+  icons_dir = icon_info[0]
+  icons_list= icon_info[1]
+
+  # generated_icons_list = []
+  # foreach icon : icons_list
+  #   generated_icons_list += custom_target(
+  #     'gen_symbolic_'+icon.underscorify(),
+  #     input : join_paths('..', 'Symbolic', icon),
+  #     output: icon,
+  #     command: [ invert_svg, '@INPUT@', '@OUTPUT@' ]
+  #   )
+  # endforeach
+  #
+  # install_data(generated_icons_list,
+  #   install_dir: join_paths(gimpiconsdir, theme, icons_dir, 'apps')
+  # )
+endforeach
+
+
+icons_core = [ '64/gimp-question.png', ]
+icons_imgs = [ '64/gimp-wilber-eek.png', ]
+
+resourcename = 'gimp-core-pixbufs'
+xml_filename = resourcename + '.gresource.xml'
+xml_content  = '<?xml version="1.0" encoding="UTF-8"?>\n'
+xml_content += '<gresources>\n'
+xml_content += '  <gresource prefix="/org/gimp/icons">\n'
+foreach file : icons_core
+  xml_content+='    <file preprocess="to-pixdata">'+ file +'</file>\n'
+endforeach
+xml_content += '  </gresource>\n'
+xml_content += '</gresources>\n'
+run_command('bash', '-c',
+  'cat <<EOS > '+ join_paths(meson.current_source_dir(), xml_filename) +'\n'
+  + xml_content + '\nEOS',
+)
+# icons_core_sources = gnome.compile_resources(
+#   resourcename,
+#   xml_filename,
+#   c_name: resourcename.underscorify(),
+# )
+
+
+resourcename = 'gimp-icon-pixbufs'
+xml_filename = resourcename + '.gresource.xml'
+xml_content  = '<?xml version="1.0" encoding="UTF-8"?>\n'
+xml_content += '<gresources>\n'
+xml_content += '  <gresource prefix="/org/gimp/icons">\n'
+foreach file : icons_imgs
+  xml_content+='    <file preprocess="to-pixdata">'+ file +'</file>\n'
+endforeach
+xml_content += '  </gresource>\n'
+xml_content += '</gresources>\n'
+run_command('bash', '-c',
+  'cat <<EOS > '+ join_paths(meson.current_source_dir(), xml_filename) +'\n'
+  + xml_content + '\nEOS',
+)
+# icons_imgs_sources = gnome.compile_resources(
+#   resourcename,
+#   xml_filename,
+#   c_name: resourcename.underscorify(),
+# )
diff --git a/icons/Symbolic/meson.build b/icons/Symbolic/meson.build
new file mode 100644
index 0000000..823780d
--- /dev/null
+++ b/icons/Symbolic/meson.build
@@ -0,0 +1,57 @@
+
+install_data('index.theme',
+  install_dir: join_paths(gimpiconsdir, theme)
+)
+
+foreach icon_info : all_icons
+  icons_dir = icon_info[0]
+  icons_list= icon_info[1]
+  install_data(icons_list,
+    install_dir: join_paths(gimpiconsdir, theme, icons_dir, 'apps')
+  )
+endforeach
+
+
+icons_core = [ '64/gimp-question.png', ]
+icons_imgs = [ '64/gimp-wilber-eek.png', ]
+
+resourcename = 'gimp-core-pixbufs'
+xml_filename = resourcename + '.gresource.xml'
+xml_content  = '<?xml version="1.0" encoding="UTF-8"?>\n'
+xml_content += '<gresources>\n'
+xml_content += '  <gresource prefix="/org/gimp/icons">\n'
+foreach file : icons_core
+  xml_content+='    <file preprocess="to-pixdata">'+ file +'</file>\n'
+endforeach
+xml_content += '  </gresource>\n'
+xml_content += '</gresources>\n'
+run_command('bash', '-c',
+  'cat <<EOS > '+ join_paths(meson.current_source_dir(), xml_filename) +'\n'
+  + xml_content + '\nEOS',
+)
+# icons_core_sources = gnome.compile_resources(
+#   resourcename,
+#   xml_filename,
+#   c_name: resourcename.underscorify(),
+# )
+
+
+resourcename = 'gimp-icon-pixbufs'
+xml_filename = resourcename + '.gresource.xml'
+xml_content  = '<?xml version="1.0" encoding="UTF-8"?>\n'
+xml_content += '<gresources>\n'
+xml_content += '  <gresource prefix="/org/gimp/icons">\n'
+foreach file : icons_imgs
+  xml_content+='    <file preprocess="to-pixdata">'+ file +'</file>\n'
+endforeach
+xml_content += '  </gresource>\n'
+xml_content += '</gresources>\n'
+run_command('bash', '-c',
+  'cat <<EOS > '+ join_paths(meson.current_source_dir(), xml_filename) +'\n'
+  + xml_content + '\nEOS',
+)
+# icons_imgs_sources = gnome.compile_resources(
+#   resourcename,
+#   xml_filename,
+#   c_name: resourcename.underscorify(),
+# )
diff --git a/icons/meson.build b/icons/meson.build
new file mode 100644
index 0000000..138aca5
--- /dev/null
+++ b/icons/meson.build
@@ -0,0 +1,1108 @@
+
+icons_scalable = [
+  'scalable/dialog-information.svg',
+  'scalable/document-new.svg',
+  'scalable/document-open-recent.svg',
+  'scalable/document-open.svg',
+  'scalable/document-print.svg',
+  'scalable/document-revert.svg',
+  'scalable/document-save-as.svg',
+  'scalable/document-save.svg',
+  'scalable/edit-clear.svg',
+  'scalable/edit-copy.svg',
+  'scalable/edit-cut.svg',
+  'scalable/edit-delete.svg',
+  'scalable/edit-paste.svg',
+  'scalable/edit-redo.svg',
+  'scalable/edit-undo.svg',
+  'scalable/folder-new.svg',
+  'scalable/folder.svg',
+  'scalable/format-indent-more.svg',
+  'scalable/format-justify-center.svg',
+  'scalable/format-justify-fill.svg',
+  'scalable/format-justify-left.svg',
+  'scalable/format-justify-right.svg',
+  'scalable/go-bottom.svg',
+  'scalable/go-down.svg',
+  'scalable/go-first.svg',
+  'scalable/go-home.svg',
+  'scalable/go-last.svg',
+  'scalable/go-next.svg',
+  'scalable/go-previous.svg',
+  'scalable/go-top.svg',
+  'scalable/go-up.svg',
+  'scalable/help-about.svg',
+  'scalable/list-add.svg',
+  'scalable/list-remove.svg',
+  'scalable/media-floppy.svg',
+  'scalable/media-optical.svg',
+  'scalable/media-playback-pause.svg',
+  'scalable/media-playback-start.svg',
+  'scalable/media-seek-backward.svg',
+  'scalable/media-skip-backward.svg',
+  'scalable/media-skip-forward.svg',
+  'scalable/preferences-system.svg',
+  'scalable/process-stop.svg',
+  'scalable/system-run.svg',
+  'scalable/view-fullscreen.svg',
+  'scalable/view-refresh.svg',
+  'scalable/window-close.svg',
+  'scalable/window-new.svg',
+  'scalable/zoom-fit-best.svg',
+  'scalable/zoom-in.svg',
+  'scalable/zoom-original.svg',
+  'scalable/zoom-out.svg',
+
+  'scalable/gtk-cancel.svg',
+  'scalable/gtk-edit.svg',
+  'scalable/gtk-no.svg',
+  'scalable/gtk-ok.svg',
+  'scalable/gtk-select-color.svg',
+  'scalable/gtk-select-font.svg',
+  'scalable/gtk-yes.svg',
+
+  'scalable/gimp-anchor.svg',
+  'scalable/gimp-business-card.svg',
+  'scalable/gimp-cap-butt.svg',
+  'scalable/gimp-cap-round.svg',
+  'scalable/gimp-cap-square.svg',
+  'scalable/gimp-center.svg',
+  'scalable/gimp-channel-alpha.svg',
+  'scalable/gimp-channel-blue.svg',
+  'scalable/gimp-channel-gray.svg',
+  'scalable/gimp-channel-green.svg',
+  'scalable/gimp-channel-indexed.svg',
+  'scalable/gimp-channel-red.svg',
+  'scalable/gimp-channel.svg',
+  'scalable/gimp-channels.svg',
+  'scalable/gimp-char-picker.svg',
+  'scalable/gimp-clipboard.svg',
+  'scalable/gimp-close-all.svg',
+  'scalable/gimp-close.svg',
+  'scalable/gimp-color-cmyk.svg',
+  'scalable/gimp-color-pick-from-screen.svg',
+  'scalable/gimp-color-picker-black.svg',
+  'scalable/gimp-color-picker-gray.svg',
+  'scalable/gimp-color-picker-white.svg',
+  'scalable/gimp-color-triangle.svg',
+  'scalable/gimp-color-water.svg',
+  'scalable/gimp-colormap.svg',
+  'scalable/gimp-controller-keyboard.svg',
+  'scalable/gimp-controller-linux-input.svg',
+  'scalable/gimp-controller-midi.svg',
+  'scalable/gimp-controller-wheel.svg',
+  'scalable/gimp-controller.svg',
+  'scalable/gimp-convert-grayscale.svg',
+  'scalable/gimp-convert-indexed.svg',
+  'scalable/gimp-convert-rgb.svg',
+  'scalable/gimp-cursor.svg',
+  'scalable/gimp-curve-free.svg',
+  'scalable/gimp-curve-smooth.svg',
+  'scalable/gimp-default-colors.svg',
+  'scalable/gimp-device-status.svg',
+  'scalable/gimp-display-filter-colorblind.svg',
+  'scalable/gimp-display-filter-contrast.svg',
+  'scalable/gimp-display-filter-gamma.svg',
+  'scalable/gimp-display-filter-lcms.svg',
+  'scalable/gimp-display-filter-proof.svg',
+  'scalable/gimp-display-filter.svg',
+  'scalable/gimp-display.svg',
+  'scalable/gimp-duplicate.svg',
+  'scalable/gimp-dynamics.svg',
+  'scalable/gimp-error.svg',
+  'scalable/gimp-file-manager.svg',
+  'scalable/gimp-flip-horizontal.svg',
+  'scalable/gimp-flip-vertical.svg',
+  'scalable/gimp-floating-selection.svg',
+  'scalable/gimp-gegl.svg',
+  'scalable/gimp-gradient-bilinear.svg',
+  'scalable/gimp-gradient-conical-asymmetric.svg',
+  'scalable/gimp-gradient-conical-symmetric.svg',
+  'scalable/gimp-gradient-linear.svg',
+  'scalable/gimp-gradient-radial.svg',
+  'scalable/gimp-gradient-shapeburst-angular.svg',
+  'scalable/gimp-gradient-shapeburst-dimpled.svg',
+  'scalable/gimp-gradient-shapeburst-spherical.svg',
+  'scalable/gimp-gradient-spiral-anticlockwise.svg',
+  'scalable/gimp-gradient-spiral-clockwise.svg',
+  'scalable/gimp-gradient-square.svg',
+  'scalable/gimp-gravity-east.svg',
+  'scalable/gimp-gravity-north-east.svg',
+  'scalable/gimp-gravity-north-west.svg',
+  'scalable/gimp-gravity-north.svg',
+  'scalable/gimp-gravity-south-east.svg',
+  'scalable/gimp-gravity-south-west.svg',
+  'scalable/gimp-gravity-south.svg',
+  'scalable/gimp-gravity-west.svg',
+  'scalable/gimp-grid.svg',
+  'scalable/gimp-group-layer.svg',
+  'scalable/gimp-hcenter.svg',
+  'scalable/gimp-hchain-broken.svg',
+  'scalable/gimp-hchain.svg',
+  'scalable/gimp-hfill.svg',
+  'scalable/gimp-histogram-linear.svg',
+  'scalable/gimp-histogram-logarithmic.svg',
+  'scalable/gimp-histogram.svg',
+  'scalable/gimp-image-open.svg',
+  'scalable/gimp-image-reload.svg',
+  'scalable/gimp-image.svg',
+  'scalable/gimp-images.svg',
+  'scalable/gimp-info.svg',
+  'scalable/gimp-input-device.svg',
+  'scalable/gimp-invert.svg',
+  'scalable/gimp-join-bevel.svg',
+  'scalable/gimp-join-miter.svg',
+  'scalable/gimp-join-round.svg',
+  'scalable/gimp-landscape.svg',
+  'scalable/gimp-layer-mask.svg',
+  'scalable/gimp-layer-to-imagesize.svg',
+  'scalable/gimp-layer.svg',
+  'scalable/gimp-layers.svg',
+  'scalable/gimp-letter-spacing.svg',
+  'scalable/gimp-line-spacing.svg',
+  'scalable/gimp-linked.svg',
+  'scalable/gimp-list.svg',
+  'scalable/gimp-menu-left.svg',
+  'scalable/gimp-menu-right.svg',
+  'scalable/gimp-merge-down.svg',
+  'scalable/gimp-move-to-screen.svg',
+  'scalable/gimp-navigation.svg',
+  'scalable/gimp-paste-as-new.svg',
+  'scalable/gimp-paste-into.svg',
+  'scalable/gimp-path-stroke.svg',
+  'scalable/gimp-path.svg',
+  'scalable/gimp-paths.svg',
+  'scalable/gimp-pattern.svg',
+  'scalable/gimp-plugin.svg',
+  'scalable/gimp-portrait.svg',
+  'scalable/gimp-prefs-color-management.svg',
+  'scalable/gimp-prefs-controllers.svg',
+  'scalable/gimp-prefs-default-comment.svg',
+  'scalable/gimp-prefs-default-grid.svg',
+  'scalable/gimp-prefs-display.svg',
+  'scalable/gimp-prefs-folders-brushes.svg',
+  'scalable/gimp-prefs-folders-dynamics.svg',
+  'scalable/gimp-prefs-folders-environ.svg',
+  'scalable/gimp-prefs-folders-fonts.svg',
+  'scalable/gimp-prefs-folders-gradients.svg',
+  'scalable/gimp-prefs-folders-icon-themes.svg',
+  'scalable/gimp-prefs-folders-interp.svg',
+  'scalable/gimp-prefs-folders-modules.svg',
+  'scalable/gimp-prefs-folders-mypaint-brushes.svg',
+  'scalable/gimp-prefs-folders-palettes.svg',
+  'scalable/gimp-prefs-folders-patterns.svg',
+  'scalable/gimp-prefs-folders-plug-ins.svg',
+  'scalable/gimp-prefs-folders-scripts.svg',
+  'scalable/gimp-prefs-folders-themes.svg',
+  'scalable/gimp-prefs-folders-tool-plug-ins.svg',
+  'scalable/gimp-prefs-folders-tool-presets.svg',
+  'scalable/gimp-prefs-folders-tools.svg',
+  'scalable/gimp-prefs-folders.svg',
+  'scalable/gimp-prefs-help-system.svg',
+  'scalable/gimp-prefs-icon-theme.svg',
+  'scalable/gimp-prefs-image-title.svg',
+  'scalable/gimp-prefs-image-windows-appearance.svg',
+  'scalable/gimp-prefs-image-windows-snapping.svg',
+  'scalable/gimp-prefs-image-windows.svg',
+  'scalable/gimp-prefs-import-export.svg',
+  'scalable/gimp-prefs-input-devices.svg',
+  'scalable/gimp-prefs-interface.svg',
+  'scalable/gimp-prefs-new-image.svg',
+  'scalable/gimp-prefs-playground.svg',
+  'scalable/gimp-prefs-session.svg',
+  'scalable/gimp-prefs-system-resources.svg',
+  'scalable/gimp-prefs-theme.svg',
+  'scalable/gimp-prefs-tool-options.svg',
+  'scalable/gimp-prefs-toolbox.svg',
+  'scalable/gimp-prefs-window-management.svg',
+  'scalable/gimp-question.svg',
+  'scalable/gimp-quick-mask-off.svg',
+  'scalable/gimp-quick-mask-on.svg',
+  'scalable/gimp-reset.svg',
+  'scalable/gimp-reshow-filter.svg',
+  'scalable/gimp-resize.svg',
+  'scalable/gimp-rotate-180.svg',
+  'scalable/gimp-rotate-270.svg',
+  'scalable/gimp-rotate-90.svg',
+  'scalable/gimp-sample-point.svg',
+  'scalable/gimp-scale.svg',
+  'scalable/gimp-selection-add.svg',
+  'scalable/gimp-selection-all.svg',
+  'scalable/gimp-selection-border.svg',
+  'scalable/gimp-selection-grow.svg',
+  'scalable/gimp-selection-intersect.svg',
+  'scalable/gimp-selection-none.svg',
+  'scalable/gimp-selection-replace.svg',
+  'scalable/gimp-selection-shrink.svg',
+  'scalable/gimp-selection-stroke.svg',
+  'scalable/gimp-selection-subtract.svg',
+  'scalable/gimp-selection-to-channel.svg',
+  'scalable/gimp-selection-to-path.svg',
+  'scalable/gimp-selection.svg',
+  'scalable/gimp-shape-circle.svg',
+  'scalable/gimp-shape-diamond.svg',
+  'scalable/gimp-shape-square.svg',
+  'scalable/gimp-shred.svg',
+  'scalable/gimp-smartphone.svg',
+  'scalable/gimp-swap-colors.svg',
+  'scalable/gimp-symmetry.svg',
+  'scalable/gimp-template.svg',
+  'scalable/gimp-text-dir-ltr.svg',
+  'scalable/gimp-text-dir-rtl.svg',
+  'scalable/gimp-text-layer.svg',
+  'scalable/gimp-toilet-paper.svg',
+  'scalable/gimp-tool-airbrush.svg',
+  'scalable/gimp-tool-align.svg',
+  'scalable/gimp-tool-blend.svg',
+  'scalable/gimp-tool-blur.svg',
+  'scalable/gimp-tool-brightness-contrast.svg',
+  'scalable/gimp-tool-bucket-fill.svg',
+  'scalable/gimp-tool-by-color-select.svg',
+  'scalable/gimp-tool-cage.svg',
+  'scalable/gimp-tool-clone.svg',
+  'scalable/gimp-tool-color-balance.svg',
+  'scalable/gimp-tool-color-picker.svg',
+  'scalable/gimp-tool-colorize.svg',
+  'scalable/gimp-tool-crop.svg',
+  'scalable/gimp-tool-curves.svg',
+  'scalable/gimp-tool-desaturate.svg',
+  'scalable/gimp-tool-dodge.svg',
+  'scalable/gimp-tool-ellipse-select.svg',
+  'scalable/gimp-tool-eraser.svg',
+  'scalable/gimp-tool-flip.svg',
+  'scalable/gimp-tool-foreground-select.svg',
+  'scalable/gimp-tool-free-select.svg',
+  'scalable/gimp-tool-fuzzy-select.svg',
+  'scalable/gimp-tool-handle-transform.svg',
+  'scalable/gimp-tool-heal.svg',
+  'scalable/gimp-tool-hue-saturation.svg',
+  'scalable/gimp-tool-ink.svg',
+  'scalable/gimp-tool-iscissors.svg',
+  'scalable/gimp-tool-levels.svg',
+  'scalable/gimp-tool-measure.svg',
+  'scalable/gimp-tool-move.svg',
+  'scalable/gimp-tool-mypaint-brush.svg',
+  'scalable/gimp-tool-n-point-deformation.svg',
+  'scalable/gimp-tool-options.svg',
+  'scalable/gimp-tool-paintbrush.svg',
+  'scalable/gimp-tool-path.svg',
+  'scalable/gimp-tool-pencil.svg',
+  'scalable/gimp-tool-perspective-clone.svg',
+  'scalable/gimp-tool-perspective.svg',
+  'scalable/gimp-tool-posterize.svg',
+  'scalable/gimp-tool-preset.svg',
+  'scalable/gimp-tool-rect-select.svg',
+  'scalable/gimp-tool-rotate.svg',
+  'scalable/gimp-tool-scale.svg',
+  'scalable/gimp-tool-seamless-clone.svg',
+  'scalable/gimp-tool-shear.svg',
+  'scalable/gimp-tool-smudge.svg',
+  'scalable/gimp-tool-text.svg',
+  'scalable/gimp-tool-threshold.svg',
+  'scalable/gimp-tool-unified-transform.svg',
+  'scalable/gimp-tool-warp.svg',
+  'scalable/gimp-tool-zoom.svg',
+  'scalable/gimp-tools.svg',
+  'scalable/gimp-transparency.svg',
+  'scalable/gimp-undo-history.svg',
+  'scalable/gimp-user-manual.svg',
+  'scalable/gimp-vcenter.svg',
+  'scalable/gimp-vchain-broken.svg',
+  'scalable/gimp-vchain.svg',
+  'scalable/gimp-vfill.svg',
+  'scalable/gimp-video.svg',
+  'scalable/gimp-visible.svg',
+  'scalable/gimp-warning.svg',
+  'scalable/gimp-web.svg',
+  'scalable/gimp-wilber-eek.svg',
+  'scalable/gimp-wilber-outline.svg',
+  'scalable/gimp-wilber.svg',
+  'scalable/gimp-zoom-follow-window.svg',
+]
+icons_24vector = [
+  '24/dialog-information.svg',
+  '24/document-print.svg',
+  '24/media-floppy.svg',
+  '24/media-optical.svg',
+
+  '24/gtk-select-color.svg',
+
+  '24/gimp-business-card.svg',
+  '24/gimp-center.svg',
+  '24/gimp-channel-alpha.svg',
+  '24/gimp-channel-blue.svg',
+  '24/gimp-channel-gray.svg',
+  '24/gimp-channel-green.svg',
+  '24/gimp-channel-indexed.svg',
+  '24/gimp-channel-red.svg',
+  '24/gimp-channel.svg',
+  '24/gimp-channels.svg',
+  '24/gimp-char-picker.svg',
+  '24/gimp-colormap.svg',
+  '24/gimp-controller-keyboard.svg',
+  '24/gimp-controller-linux-input.svg',
+  '24/gimp-controller-midi.svg',
+  '24/gimp-controller-wheel.svg',
+  '24/gimp-controller.svg',
+  '24/gimp-cursor.svg',
+  '24/gimp-device-status.svg',
+  '24/gimp-display-filter-colorblind.svg',
+  '24/gimp-display-filter-contrast.svg',
+  '24/gimp-display-filter-gamma.svg',
+  '24/gimp-display-filter-lcms.svg',
+  '24/gimp-display-filter-proof.svg',
+  '24/gimp-display-filter.svg',
+  '24/gimp-display.svg',
+  '24/gimp-dynamics.svg',
+  '24/gimp-error.svg',
+  '24/gimp-floating-selection.svg',
+  '24/gimp-gegl.svg',
+  '24/gimp-grid.svg',
+  '24/gimp-histogram.svg',
+  '24/gimp-image.svg',
+  '24/gimp-images.svg',
+  '24/gimp-info.svg',
+  '24/gimp-landscape.svg',
+  '24/gimp-layer-mask.svg',
+  '24/gimp-layer.svg',
+  '24/gimp-layers.svg',
+  '24/gimp-letter-spacing.svg',
+  '24/gimp-line-spacing.svg',
+  '24/gimp-move-to-screen.svg',
+  '24/gimp-navigation.svg',
+  '24/gimp-path.svg',
+  '24/gimp-paths.svg',
+  '24/gimp-portrait.svg',
+  '24/gimp-prefs-color-management.svg',
+  '24/gimp-prefs-controllers.svg',
+  '24/gimp-prefs-default-comment.svg',
+  '24/gimp-prefs-default-grid.svg',
+  '24/gimp-prefs-display.svg',
+  '24/gimp-prefs-folders-brushes.svg',
+  '24/gimp-prefs-folders-dynamics.svg',
+  '24/gimp-prefs-folders-environ.svg',
+  '24/gimp-prefs-folders-fonts.svg',
+  '24/gimp-prefs-folders-gradients.svg',
+  '24/gimp-prefs-folders-icon-themes.svg',
+  '24/gimp-prefs-folders-interp.svg',
+  '24/gimp-prefs-folders-modules.svg',
+  '24/gimp-prefs-folders-mypaint-brushes.svg',
+  '24/gimp-prefs-folders-palettes.svg',
+  '24/gimp-prefs-folders-patterns.svg',
+  '24/gimp-prefs-folders-plug-ins.svg',
+  '24/gimp-prefs-folders-scripts.svg',
+  '24/gimp-prefs-folders-themes.svg',
+  '24/gimp-prefs-folders-tool-plug-ins.svg',
+  '24/gimp-prefs-folders-tool-presets.svg',
+  '24/gimp-prefs-folders-tools.svg',
+  '24/gimp-prefs-folders.svg',
+  '24/gimp-prefs-help-system.svg',
+  '24/gimp-prefs-icon-theme.svg',
+  '24/gimp-prefs-image-title.svg',
+  '24/gimp-prefs-image-windows-appearance.svg',
+  '24/gimp-prefs-image-windows-snapping.svg',
+  '24/gimp-prefs-image-windows.svg',
+  '24/gimp-prefs-import-export.svg',
+  '24/gimp-prefs-input-devices.svg',
+  '24/gimp-prefs-interface.svg',
+  '24/gimp-prefs-new-image.svg',
+  '24/gimp-prefs-playground.svg',
+  '24/gimp-prefs-session.svg',
+  '24/gimp-prefs-system-resources.svg',
+  '24/gimp-prefs-theme.svg',
+  '24/gimp-prefs-tool-options.svg',
+  '24/gimp-prefs-toolbox.svg',
+  '24/gimp-prefs-window-management.svg',
+  '24/gimp-question.svg',
+  '24/gimp-resize.svg',
+  '24/gimp-sample-point.svg',
+  '24/gimp-scale.svg',
+  '24/gimp-selection.svg',
+  '24/gimp-smartphone.svg',
+  '24/gimp-symmetry.svg',
+  '24/gimp-template.svg',
+  '24/gimp-text-layer.svg',
+  '24/gimp-tool-airbrush.svg',
+  '24/gimp-tool-align.svg',
+  '24/gimp-tool-blend.svg',
+  '24/gimp-tool-blur.svg',
+  '24/gimp-tool-brightness-contrast.svg',
+  '24/gimp-tool-bucket-fill.svg',
+  '24/gimp-tool-by-color-select.svg',
+  '24/gimp-tool-cage.svg',
+  '24/gimp-tool-clone.svg',
+  '24/gimp-tool-color-balance.svg',
+  '24/gimp-tool-color-picker.svg',
+  '24/gimp-tool-colorize.svg',
+  '24/gimp-tool-crop.svg',
+  '24/gimp-tool-curves.svg',
+  '24/gimp-tool-desaturate.svg',
+  '24/gimp-tool-dodge.svg',
+  '24/gimp-tool-ellipse-select.svg',
+  '24/gimp-tool-eraser.svg',
+  '24/gimp-tool-flip.svg',
+  '24/gimp-tool-foreground-select.svg',
+  '24/gimp-tool-free-select.svg',
+  '24/gimp-tool-fuzzy-select.svg',
+  '24/gimp-tool-handle-transform.svg',
+  '24/gimp-tool-heal.svg',
+  '24/gimp-tool-hue-saturation.svg',
+  '24/gimp-tool-ink.svg',
+  '24/gimp-tool-iscissors.svg',
+  '24/gimp-tool-levels.svg',
+  '24/gimp-tool-measure.svg',
+  '24/gimp-tool-mypaint-brush.svg',
+  '24/gimp-tool-n-point-deformation.svg',
+  '24/gimp-tool-options.svg',
+  '24/gimp-tool-paintbrush.svg',
+  '24/gimp-tool-path.svg',
+  '24/gimp-tool-pencil.svg',
+  '24/gimp-tool-perspective-clone.svg',
+  '24/gimp-tool-perspective.svg',
+  '24/gimp-tool-posterize.svg',
+  '24/gimp-tool-preset.svg',
+  '24/gimp-tool-rect-select.svg',
+  '24/gimp-tool-rotate.svg',
+  '24/gimp-tool-scale.svg',
+  '24/gimp-tool-seamless-clone.svg',
+  '24/gimp-tool-shear.svg',
+  '24/gimp-tool-smudge.svg',
+  '24/gimp-tool-text.svg',
+  '24/gimp-tool-threshold.svg',
+  '24/gimp-tool-unified-transform.svg',
+  '24/gimp-tool-warp.svg',
+  '24/gimp-tool-zoom.svg',
+  '24/gimp-tools.svg',
+  '24/gimp-transparency.svg',
+  '24/gimp-undo-history.svg',
+  '24/gimp-user-manual.svg',
+  '24/gimp-video.svg',
+  '24/gimp-warning.svg',
+  '24/gimp-web.svg',
+  '24/gimp-wilber.svg',
+]
+icons_12 = [
+  '12/gimp-close.png',
+  '12/gimp-default-colors.png',
+  '12/gimp-linked.png',
+  '12/gimp-menu-left.png',
+  '12/gimp-menu-right.png',
+  '12/gimp-quick-mask-off.png',
+  '12/gimp-quick-mask-on.png',
+  '12/gimp-swap-colors.png',
+  '12/gimp-visible.png',
+  '12/gimp-zoom-follow-window.png',
+]
+icons_16 = [
+  '16/dialog-information.png',
+  '16/document-new.png',
+  '16/document-open-recent.png',
+  '16/document-open.png',
+  '16/document-print.png',
+  '16/document-revert.png',
+  '16/document-save-as.png',
+  '16/document-save.png',
+  '16/edit-clear.png',
+  '16/edit-copy.png',
+  '16/edit-cut.png',
+  '16/edit-delete.png',
+  '16/edit-paste.png',
+  '16/edit-redo.png',
+  '16/edit-undo.png',
+  '16/folder-new.png',
+  '16/folder.png',
+  '16/go-bottom.png',
+  '16/go-down.png',
+  '16/go-first.png',
+  '16/go-home.png',
+  '16/go-last.png',
+  '16/go-next.png',
+  '16/go-previous.png',
+  '16/go-top.png',
+  '16/go-up.png',
+  '16/help-about.png',
+  '16/list-add.png',
+  '16/list-remove.png',
+  '16/media-floppy.png',
+  '16/media-optical.png',
+  '16/media-playback-pause.png',
+  '16/media-playback-start.png',
+  '16/media-seek-backward.png',
+  '16/media-skip-backward.png',
+  '16/media-skip-forward.png',
+  '16/preferences-system.png',
+  '16/process-stop.png',
+  '16/system-run.png',
+  '16/view-fullscreen.png',
+  '16/view-refresh.png',
+  '16/window-close.png',
+  '16/window-new.png',
+  '16/zoom-fit-best.png',
+  '16/zoom-in.png',
+  '16/zoom-original.png',
+  '16/zoom-out.png',
+
+  '16/gtk-cancel.png',
+  '16/gtk-edit.png',
+  '16/gtk-no.png',
+  '16/gtk-ok.png',
+  '16/gtk-select-color.png',
+  '16/gtk-select-font.png',
+  '16/gtk-yes.png',
+
+  '16/gimp-anchor.png',
+  '16/gimp-business-card.png',
+  '16/gimp-cap-butt.png',
+  '16/gimp-cap-round.png',
+  '16/gimp-cap-square.png',
+  '16/gimp-center.png',
+  '16/gimp-channel-alpha.png',
+  '16/gimp-channel-blue.png',
+  '16/gimp-channel-gray.png',
+  '16/gimp-channel-green.png',
+  '16/gimp-channel-indexed.png',
+  '16/gimp-channel-red.png',
+  '16/gimp-channel.png',
+  '16/gimp-channels.png',
+  '16/gimp-char-picker.png',
+  '16/gimp-clipboard.png',
+  '16/gimp-close-all.png',
+  '16/gimp-color-cmyk.png',
+  '16/gimp-color-pick-from-screen.png',
+  '16/gimp-color-triangle.png',
+  '16/gimp-color-water.png',
+  '16/gimp-colormap.png',
+  '16/gimp-controller-keyboard.png',
+  '16/gimp-controller-linux-input.png',
+  '16/gimp-controller-midi.png',
+  '16/gimp-controller-wheel.png',
+  '16/gimp-controller.png',
+  '16/gimp-convert-grayscale.png',
+  '16/gimp-convert-indexed.png',
+  '16/gimp-convert-rgb.png',
+  '16/gimp-cursor.png',
+  '16/gimp-curve-free.png',
+  '16/gimp-curve-smooth.png',
+  '16/gimp-device-status.png',
+  '16/gimp-display-filter-colorblind.png',
+  '16/gimp-display-filter-contrast.png',
+  '16/gimp-display-filter-gamma.png',
+  '16/gimp-display-filter-lcms.png',
+  '16/gimp-display-filter-proof.png',
+  '16/gimp-display-filter.png',
+  '16/gimp-display.png',
+  '16/gimp-duplicate.png',
+  '16/gimp-dynamics.png',
+  '16/gimp-error.png',
+  '16/gimp-file-manager.png',
+  '16/gimp-flip-horizontal.png',
+  '16/gimp-flip-vertical.png',
+  '16/gimp-floating-selection.png',
+  '16/gimp-gegl.png',
+  '16/gimp-gradient-bilinear.png',
+  '16/gimp-gradient-conical-asymmetric.png',
+  '16/gimp-gradient-conical-symmetric.png',
+  '16/gimp-gradient-linear.png',
+  '16/gimp-gradient-radial.png',
+  '16/gimp-gradient-shapeburst-angular.png',
+  '16/gimp-gradient-shapeburst-dimpled.png',
+  '16/gimp-gradient-shapeburst-spherical.png',
+  '16/gimp-gradient-spiral-anticlockwise.png',
+  '16/gimp-gradient-spiral-clockwise.png',
+  '16/gimp-gradient-square.png',
+  '16/gimp-grid.png',
+  '16/gimp-group-layer.png',
+  '16/gimp-histogram-linear.png',
+  '16/gimp-histogram-logarithmic.png',
+  '16/gimp-histogram.png',
+  '16/gimp-image-open.png',
+  '16/gimp-image-reload.png',
+  '16/gimp-image.png',
+  '16/gimp-images.png',
+  '16/gimp-info.png',
+  '16/gimp-input-device.png',
+  '16/gimp-invert.png',
+  '16/gimp-join-bevel.png',
+  '16/gimp-join-miter.png',
+  '16/gimp-join-round.png',
+  '16/gimp-landscape.png',
+  '16/gimp-layer-mask.png',
+  '16/gimp-layer-to-imagesize.png',
+  '16/gimp-layer.png',
+  '16/gimp-layers.png',
+  '16/gimp-list.png',
+  '16/gimp-merge-down.png',
+  '16/gimp-move-to-screen.png',
+  '16/gimp-navigation.png',
+  '16/gimp-paste-as-new.png',
+  '16/gimp-paste-into.png',
+  '16/gimp-path-stroke.png',
+  '16/gimp-path.png',
+  '16/gimp-paths.png',
+  '16/gimp-pattern.png',
+  '16/gimp-plugin.png',
+  '16/gimp-portrait.png',
+  '16/gimp-prefs-folders-brushes.png',
+  '16/gimp-prefs-folders-dynamics.png',
+  '16/gimp-prefs-folders-environ.png',
+  '16/gimp-prefs-folders-fonts.png',
+  '16/gimp-prefs-folders-gradients.png',
+  '16/gimp-prefs-folders-icon-themes.png',
+  '16/gimp-prefs-folders-interp.png',
+  '16/gimp-prefs-folders-modules.png',
+  '16/gimp-prefs-folders-mypaint-brushes.png',
+  '16/gimp-prefs-folders-palettes.png',
+  '16/gimp-prefs-folders-patterns.png',
+  '16/gimp-prefs-folders-plug-ins.png',
+  '16/gimp-prefs-folders-scripts.png',
+  '16/gimp-prefs-folders-themes.png',
+  '16/gimp-prefs-folders-tool-plug-ins.png',
+  '16/gimp-prefs-folders-tool-presets.png',
+  '16/gimp-prefs-folders-tools.png',
+  '16/gimp-prefs-icon-theme.png',
+  '16/gimp-prefs-image-windows.png',
+  '16/gimp-prefs-import-export.png',
+  '16/gimp-prefs-interface.png',
+  '16/gimp-prefs-theme.png',
+  '16/gimp-prefs-toolbox.png',
+  '16/gimp-prefs-window-management.png',
+  '16/gimp-question.png',
+  '16/gimp-reset.png',
+  '16/gimp-reshow-filter.png',
+  '16/gimp-resize.png',
+  '16/gimp-rotate-180.png',
+  '16/gimp-rotate-270.png',
+  '16/gimp-rotate-90.png',
+  '16/gimp-sample-point.png',
+  '16/gimp-scale.png',
+  '16/gimp-selection-add.png',
+  '16/gimp-selection-all.png',
+  '16/gimp-selection-border.png',
+  '16/gimp-selection-grow.png',
+  '16/gimp-selection-intersect.png',
+  '16/gimp-selection-none.png',
+  '16/gimp-selection-replace.png',
+  '16/gimp-selection-shrink.png',
+  '16/gimp-selection-stroke.png',
+  '16/gimp-selection-subtract.png',
+  '16/gimp-selection-to-channel.png',
+  '16/gimp-selection-to-path.png',
+  '16/gimp-selection.png',
+  '16/gimp-shape-circle.png',
+  '16/gimp-shape-diamond.png',
+  '16/gimp-shape-square.png',
+  '16/gimp-shred.png',
+  '16/gimp-smartphone.png',
+  '16/gimp-symmetry.png',
+  '16/gimp-template.png',
+  '16/gimp-text-layer.png',
+  '16/gimp-toilet-paper.png',
+  '16/gimp-tool-airbrush.png',
+  '16/gimp-tool-align.png',
+  '16/gimp-tool-blend.png',
+  '16/gimp-tool-blur.png',
+  '16/gimp-tool-brightness-contrast.png',
+  '16/gimp-tool-bucket-fill.png',
+  '16/gimp-tool-by-color-select.png',
+  '16/gimp-tool-cage.png',
+  '16/gimp-tool-clone.png',
+  '16/gimp-tool-color-balance.png',
+  '16/gimp-tool-color-picker.png',
+  '16/gimp-tool-colorize.png',
+  '16/gimp-tool-crop.png',
+  '16/gimp-tool-curves.png',
+  '16/gimp-tool-desaturate.png',
+  '16/gimp-tool-dodge.png',
+  '16/gimp-tool-ellipse-select.png',
+  '16/gimp-tool-eraser.png',
+  '16/gimp-tool-flip.png',
+  '16/gimp-tool-foreground-select.png',
+  '16/gimp-tool-free-select.png',
+  '16/gimp-tool-fuzzy-select.png',
+  '16/gimp-tool-handle-transform.png',
+  '16/gimp-tool-heal.png',
+  '16/gimp-tool-hue-saturation.png',
+  '16/gimp-tool-ink.png',
+  '16/gimp-tool-iscissors.png',
+  '16/gimp-tool-levels.png',
+  '16/gimp-tool-measure.png',
+  '16/gimp-tool-move.png',
+  '16/gimp-tool-mypaint-brush.png',
+  '16/gimp-tool-n-point-deformation.png',
+  '16/gimp-tool-options.png',
+  '16/gimp-tool-paintbrush.png',
+  '16/gimp-tool-path.png',
+  '16/gimp-tool-pencil.png',
+  '16/gimp-tool-perspective-clone.png',
+  '16/gimp-tool-perspective.png',
+  '16/gimp-tool-posterize.png',
+  '16/gimp-tool-preset.png',
+  '16/gimp-tool-rect-select.png',
+  '16/gimp-tool-rotate.png',
+  '16/gimp-tool-scale.png',
+  '16/gimp-tool-seamless-clone.png',
+  '16/gimp-tool-shear.png',
+  '16/gimp-tool-smudge.png',
+  '16/gimp-tool-text.png',
+  '16/gimp-tool-threshold.png',
+  '16/gimp-tool-unified-transform.png',
+  '16/gimp-tool-warp.png',
+  '16/gimp-tool-zoom.png',
+  '16/gimp-tools.png',
+  '16/gimp-transparency.png',
+  '16/gimp-undo-history.png',
+  '16/gimp-user-manual.png',
+  '16/gimp-video.png',
+  '16/gimp-warning.png',
+  '16/gimp-web.png',
+  '16/gimp-wilber.png',
+]
+icons_18 = [
+  '18/gimp-color-picker-black.png',
+  '18/gimp-color-picker-gray.png',
+  '18/gimp-color-picker-white.png',
+]
+icons_20 = [
+  '20/gimp-linked.png',
+  '20/gimp-visible.png',
+]
+icons_22 = [
+  '22/folder.png',
+  '22/format-indent-more.png',
+  '22/format-justify-center.png',
+  '22/format-justify-fill.png',
+  '22/format-justify-left.png',
+  '22/format-justify-right.png',
+
+  '22/gimp-char-picker.png',
+  '22/gimp-dynamics.png',
+  '22/gimp-histogram.png',
+  '22/gimp-input-device.png',
+  '22/gimp-landscape.png',
+  '22/gimp-letter-spacing.png',
+  '22/gimp-line-spacing.png',
+  '22/gimp-path.png',
+  '22/gimp-paths.png',
+  '22/gimp-portrait.png',
+  '22/gimp-prefs-color-management.png',
+  '22/gimp-prefs-controllers.png',
+  '22/gimp-prefs-default-grid.png',
+  '22/gimp-prefs-display.png',
+  '22/gimp-prefs-folders-brushes.png',
+  '22/gimp-prefs-folders-dynamics.png',
+  '22/gimp-prefs-folders-environ.png',
+  '22/gimp-prefs-folders-fonts.png',
+  '22/gimp-prefs-folders-gradients.png',
+  '22/gimp-prefs-folders-icon-themes.png',
+  '22/gimp-prefs-folders-interp.png',
+  '22/gimp-prefs-folders-modules.png',
+  '22/gimp-prefs-folders-mypaint-brushes.png',
+  '22/gimp-prefs-folders-palettes.png',
+  '22/gimp-prefs-folders-patterns.png',
+  '22/gimp-prefs-folders-plug-ins.png',
+  '22/gimp-prefs-folders-scripts.png',
+  '22/gimp-prefs-folders-themes.png',
+  '22/gimp-prefs-folders-tool-plug-ins.png',
+  '22/gimp-prefs-folders-tool-presets.png',
+  '22/gimp-prefs-folders-tools.png',
+  '22/gimp-prefs-folders.png',
+  '22/gimp-prefs-help-system.png',
+  '22/gimp-prefs-icon-theme.png',
+  '22/gimp-prefs-image-title.png',
+  '22/gimp-prefs-image-windows-appearance.png',
+  '22/gimp-prefs-image-windows-snapping.png',
+  '22/gimp-prefs-image-windows.png',
+  '22/gimp-prefs-import-export.png',
+  '22/gimp-prefs-input-devices.png',
+  '22/gimp-prefs-interface.png',
+  '22/gimp-prefs-new-image.png',
+  '22/gimp-prefs-playground.png',
+  '22/gimp-prefs-session.png',
+  '22/gimp-prefs-system-resources.png',
+  '22/gimp-prefs-theme.png',
+  '22/gimp-prefs-tool-options.png',
+  '22/gimp-prefs-toolbox.png',
+  '22/gimp-prefs-window-management.png',
+  '22/gimp-tool-preset.png',
+  '22/gimp-wilber.png',
+]
+icons_24 = [
+  '24/dialog-information.png',
+  '24/document-print.png',
+  '24/media-floppy.png',
+  '24/media-optical.png',
+
+  '24/gtk-select-color.png',
+
+  '24/gimp-business-card.png',
+  '24/gimp-center.png',
+  '24/gimp-channel-alpha.png',
+  '24/gimp-channel-blue.png',
+  '24/gimp-channel-gray.png',
+  '24/gimp-channel-green.png',
+  '24/gimp-channel-indexed.png',
+  '24/gimp-channel-red.png',
+  '24/gimp-channel.png',
+  '24/gimp-channels.png',
+  '24/gimp-colormap.png',
+  '24/gimp-controller-keyboard.png',
+  '24/gimp-controller-linux-input.png',
+  '24/gimp-controller-midi.png',
+  '24/gimp-controller-wheel.png',
+  '24/gimp-controller.png',
+  '24/gimp-cursor.png',
+  '24/gimp-device-status.png',
+  '24/gimp-display-filter-colorblind.png',
+  '24/gimp-display-filter-contrast.png',
+  '24/gimp-display-filter-gamma.png',
+  '24/gimp-display-filter-lcms.png',
+  '24/gimp-display-filter-proof.png',
+  '24/gimp-display-filter.png',
+  '24/gimp-display.png',
+  '24/gimp-error.png',
+  '24/gimp-floating-selection.png',
+  '24/gimp-gegl.png',
+  '24/gimp-gravity-east.png',
+  '24/gimp-gravity-north-east.png',
+  '24/gimp-gravity-north-west.png',
+  '24/gimp-gravity-north.png',
+  '24/gimp-gravity-south-east.png',
+  '24/gimp-gravity-south-west.png',
+  '24/gimp-gravity-south.png',
+  '24/gimp-gravity-west.png',
+  '24/gimp-grid.png',
+  '24/gimp-hcenter.png',
+  '24/gimp-hchain-broken.png',
+  '24/gimp-hchain.png',
+  '24/gimp-hfill.png',
+  '24/gimp-image.png',
+  '24/gimp-images.png',
+  '24/gimp-info.png',
+  '24/gimp-layer-mask.png',
+  '24/gimp-layer.png',
+  '24/gimp-layers.png',
+  '24/gimp-move-to-screen.png',
+  '24/gimp-navigation.png',
+  '24/gimp-question.png',
+  '24/gimp-resize.png',
+  '24/gimp-sample-point.png',
+  '24/gimp-scale.png',
+  '24/gimp-selection.png',
+  '24/gimp-smartphone.png',
+  '24/gimp-symmetry.png',
+  '24/gimp-template.png',
+  '24/gimp-text-dir-ltr.png',
+  '24/gimp-text-dir-rtl.png',
+  '24/gimp-text-layer.png',
+  '24/gimp-toilet-paper.png',
+  '24/gimp-tool-airbrush.png',
+  '24/gimp-tool-align.png',
+  '24/gimp-tool-blend.png',
+  '24/gimp-tool-blur.png',
+  '24/gimp-tool-brightness-contrast.png',
+  '24/gimp-tool-bucket-fill.png',
+  '24/gimp-tool-by-color-select.png',
+  '24/gimp-tool-cage.png',
+  '24/gimp-tool-clone.png',
+  '24/gimp-tool-color-balance.png',
+  '24/gimp-tool-color-picker.png',
+  '24/gimp-tool-colorize.png',
+  '24/gimp-tool-crop.png',
+  '24/gimp-tool-curves.png',
+  '24/gimp-tool-desaturate.png',
+  '24/gimp-tool-dodge.png',
+  '24/gimp-tool-ellipse-select.png',
+  '24/gimp-tool-eraser.png',
+  '24/gimp-tool-flip.png',
+  '24/gimp-tool-foreground-select.png',
+  '24/gimp-tool-free-select.png',
+  '24/gimp-tool-fuzzy-select.png',
+  '24/gimp-tool-handle-transform.png',
+  '24/gimp-tool-heal.png',
+  '24/gimp-tool-hue-saturation.png',
+  '24/gimp-tool-ink.png',
+  '24/gimp-tool-iscissors.png',
+  '24/gimp-tool-levels.png',
+  '24/gimp-tool-measure.png',
+  '24/gimp-tool-move.png',
+  '24/gimp-tool-mypaint-brush.png',
+  '24/gimp-tool-n-point-deformation.png',
+  '24/gimp-tool-options.png',
+  '24/gimp-tool-paintbrush.png',
+  '24/gimp-tool-path.png',
+  '24/gimp-tool-pencil.png',
+  '24/gimp-tool-perspective-clone.png',
+  '24/gimp-tool-perspective.png',
+  '24/gimp-tool-posterize.png',
+  '24/gimp-tool-preset.png',
+  '24/gimp-tool-rect-select.png',
+  '24/gimp-tool-rotate.png',
+  '24/gimp-tool-scale.png',
+  '24/gimp-tool-seamless-clone.png',
+  '24/gimp-tool-shear.png',
+  '24/gimp-tool-smudge.png',
+  '24/gimp-tool-text.png',
+  '24/gimp-tool-threshold.png',
+  '24/gimp-tool-unified-transform.png',
+  '24/gimp-tool-warp.png',
+  '24/gimp-tool-zoom.png',
+  '24/gimp-tools.png',
+  '24/gimp-transparency.png',
+  '24/gimp-undo-history.png',
+  '24/gimp-user-manual.png',
+  '24/gimp-vcenter.png',
+  '24/gimp-vchain-broken.png',
+  '24/gimp-vchain.png',
+  '24/gimp-vfill.png',
+  '24/gimp-video.png',
+  '24/gimp-warning.png',
+  '24/gimp-web.png',
+]
+icons_32 = [
+  '32/gimp-channel-alpha.png',
+  '32/gimp-channel-blue.png',
+  '32/gimp-channel-gray.png',
+  '32/gimp-channel-green.png',
+  '32/gimp-channel-indexed.png',
+  '32/gimp-channel-red.png',
+  '32/gimp-channel.png',
+  '32/gimp-floating-selection.png',
+  '32/gimp-image.png',
+  '32/gimp-layer-mask.png',
+  '32/gimp-layer.png',
+  '32/gimp-text-layer.png',
+  '32/gimp-user-manual.png',
+  '32/gimp-wilber.png',
+]
+icons_48 = [
+  '48/folder.png',
+
+  '48/gimp-channel-alpha.png',
+  '48/gimp-channel-blue.png',
+  '48/gimp-channel-gray.png',
+  '48/gimp-channel-green.png',
+  '48/gimp-channel-indexed.png',
+  '48/gimp-channel-red.png',
+  '48/gimp-channel.png',
+  '48/gimp-floating-selection.png',
+  '48/gimp-image.png',
+  '48/gimp-layer-mask.png',
+  '48/gimp-layer.png',
+  '48/gimp-prefs-color-management.png',
+  '48/gimp-prefs-controllers.png',
+  '48/gimp-prefs-default-comment.png',
+  '48/gimp-prefs-default-grid.png',
+  '48/gimp-prefs-display.png',
+  '48/gimp-prefs-folders.png',
+  '48/gimp-prefs-folders-brushes.png',
+  '48/gimp-prefs-folders-dynamics.png',
+  '48/gimp-prefs-folders-environ.png',
+  '48/gimp-prefs-folders-fonts.png',
+  '48/gimp-prefs-folders-gradients.png',
+  '48/gimp-prefs-folders-icon-themes.png',
+  '48/gimp-prefs-folders-interp.png',
+  '48/gimp-prefs-folders-modules.png',
+  '48/gimp-prefs-folders-mypaint-brushes.png',
+  '48/gimp-prefs-folders-palettes.png',
+  '48/gimp-prefs-folders-patterns.png',
+  '48/gimp-prefs-folders-plug-ins.png',
+  '48/gimp-prefs-folders-scripts.png',
+  '48/gimp-prefs-folders-themes.png',
+  '48/gimp-prefs-folders-tool-plug-ins.png',
+  '48/gimp-prefs-folders-tool-presets.png',
+  '48/gimp-prefs-folders-tools.png',
+  '48/gimp-prefs-help-system.png',
+  '48/gimp-prefs-icon-theme.png',
+  '48/gimp-prefs-image-title.png',
+  '48/gimp-prefs-image-windows.png',
+  '48/gimp-prefs-image-windows-appearance.png',
+  '48/gimp-prefs-image-windows-snapping.png',
+  '48/gimp-prefs-import-export.png',
+  '48/gimp-prefs-input-devices.png',
+  '48/gimp-prefs-interface.png',
+  '48/gimp-prefs-new-image.png',
+  '48/gimp-prefs-playground.png',
+  '48/gimp-prefs-session.png',
+  '48/gimp-prefs-system-resources.png',
+  '48/gimp-prefs-theme.png',
+  '48/gimp-prefs-tool-options.png',
+  '48/gimp-prefs-toolbox.png',
+  '48/gimp-prefs-window-management.png',
+  '48/gimp-text-layer.png',
+  '48/gimp-wilber.png',
+]
+icons_64 = [
+  '64/dialog-information.png',
+  '64/gimp-user-manual.png',
+  '64/gimp-wilber-eek.png',
+  '64/gimp-wilber-outline.png',
+  '64/gimp-wilber.png',
+]
+icons_64system = [
+  '64/gimp-error.png',
+  '64/gimp-frame.png',
+  '64/gimp-info.png',
+  '64/gimp-question.png',
+  '64/gimp-texture.png',
+  '64/gimp-warning.png',
+]
+icons_96 = [
+  '96/gimp-wilber-outline.png',
+  '96/gimp-wilber.png',
+]
+icons_128 = [
+  '128/folder.png',
+  '128/gimp-wilber-outline.png',
+  '128/gimp-wilber.png',
+]
+icons_192 = [
+  '192/gimp-wilber-outline.png',
+  '192/gimp-wilber.png',
+]
+icons_256 = [
+  '256/folder.png',
+  '256/gimp-wilber-outline.png',
+  '256/gimp-wilber.png',
+]
+
+if have_vector_icons
+  all_icons = [
+    [ '24x24',    icons_24 ],
+    [ '64x64',    icons_64 ],
+    [ 'scalable', icons_scalable ],
+  ]
+else
+  all_icons = [
+    [ '12x12',    icons_12 ],
+    [ '16x16',    icons_16 ],
+    [ '18x18',    icons_18 ],
+    [ '20x20',    icons_20 ],
+    [ '22x22',    icons_22 ],
+    [ '24x24',    icons_24 ],
+    [ '32x32',    icons_32 ],
+    [ '48x48',    icons_48 ],
+    [ '64x64',    icons_64 ],
+    [ '96x96',    icons_96 ],
+    [ '128x128',  icons_128 ],
+    [ '192x192',  icons_192 ],
+    [ '256x256',  icons_256 ],
+  ]
+endif
+
+
+gimpiconsdir = join_paths(datadir, 'icons')
+
+themes = [
+  'Color',
+  # 'Legacy',
+  'Symbolic',
+  'Symbolic-Inverted',
+]
+
+foreach theme : themes
+  subdir(theme)
+endforeach
+
+install_data('index.theme',
+  install_dir: join_paths(gimpiconsdir, 'hicolor')
+)
diff --git a/libgimpwidgets/meson.build b/libgimpwidgets/meson.build
index 67b25d3..23a6601 100644
--- a/libgimpwidgets/meson.build
+++ b/libgimpwidgets/meson.build
@@ -88,7 +88,7 @@ libgimpwidgets_sources = [
   'gimpframe.c',
   'gimphelpui.c',
   'gimphintbox.c',
-  # 'gimpicons.c',
+  'gimpicons.c',
   'gimpintcombobox.c',
   'gimpintstore.c',
   'gimpmemsizeentry.c',
@@ -119,6 +119,7 @@ libgimpwidgets_sources = [
   gimpwidgetsenums,
   gimpwidgetsmarshal,
   gimppickbutton,
+  icons_imgs_sources,
 ]
 
 libgimpwidgets_headers = [
diff --git a/meson.build b/meson.build
index c08077f..c22ba59 100644
--- a/meson.build
+++ b/meson.build
@@ -793,6 +793,10 @@ rootInclude = include_directories('.')
 ################################################################################
 # Subdirs
 
+# Tools (need libgimpbase now)
+subdir('libgimpbase')
+subdir('tools')
+
 # Translations
 subdir('po')
 subdir('po-libgimp')
@@ -807,7 +811,7 @@ subdir('cursors')
 subdir('data')
 subdir('desktop')
 subdir('etc')
-# subdir('icons')
+subdir('icons')
 subdir('m4macros')
 # subdir('menus')
 subdir('themes')
@@ -817,7 +821,6 @@ subdir('themes')
 # subdir('docs')
 
 # Libraries (order here is important!)
-subdir('libgimpbase')
 subdir('libgimpcolor')
 subdir('libgimpmath')
 subdir('libgimpconfig')
@@ -829,7 +832,6 @@ subdir('libgimp')
 # Executables, plugins
 subdir('modules')
 # subdir('plug-ins')
-subdir('tools')
 subdir('app')
 
 
diff --git a/themes/meson.build b/themes/meson.build
index 36013ae..6598f67 100644
--- a/themes/meson.build
+++ b/themes/meson.build
@@ -18,4 +18,4 @@ foreach theme : themes
       install_dir: join_paths(datadir, 'themes', theme)
     )
   endif
-endforeach
\ No newline at end of file
+endforeach
diff --git a/tools/meson.build b/tools/meson.build
index 01f4cac..4d222f3 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -63,8 +63,13 @@ executable('test-clipboard',
 )
 
 if have_vector_icons
-  executable('invert-svg',
+  invert_svg_exe = executable('invert-svg',
     'invert-svg.c',
     dependencies: gio,
   )
+  invert_svg = generator(
+    invert_svg_exe,
+    output: '@BASENAME@',
+    arguments: [ '@INPUT@', '@OUTPUT@' ],
+  )
 endif



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]