[dia: 22/105] #19: Install icons & explicitly reference ui/*.xml files.



commit e4447c0fc18c1a944603911d8257ad4e09d3e25f
Author: Eduard Nicodei <eddnicodei gmail com>
Date:   Thu Dec 20 21:15:57 2018 +0000

    #19: Install icons & explicitly reference ui/*.xml files.
    
      - Meson's philosophy is explicit rather than implicit, hence
        put all ui/*.xml in a list.
      - Also add post-install.py script that calls gtk-update-icon-cache.

 app/pixmaps/meson.build       |  1 -
 data/icons/meson.build        | 20 ++++++++++++++++++++
 data/meson.build              | 16 +++++++++++++++-
 meson-helpers/post-install.py | 16 ++++++++++++++++
 meson.build                   |  2 ++
 5 files changed, 53 insertions(+), 2 deletions(-)
---
diff --git a/app/pixmaps/meson.build b/app/pixmaps/meson.build
index ef8319ba..751577c4 100644
--- a/app/pixmaps/meson.build
+++ b/app/pixmaps/meson.build
@@ -11,7 +11,6 @@ icons = [ 'connectable.png',
           'mainpoints-on.png',
           'mainpoints-off.png',
 
-
           'objects-layer-above.png',
           'objects-layer-below.png',
           'layers.png',
diff --git a/data/icons/meson.build b/data/icons/meson.build
new file mode 100644
index 00000000..c64563e6
--- /dev/null
+++ b/data/icons/meson.build
@@ -0,0 +1,20 @@
+icons_sources = [
+    '16x16/apps/dia.png',
+    '22x22/apps/dia.png',
+    '24x24/apps/dia.png',
+    '32x32/apps/dia.png',
+    '48x48/apps/dia.png',
+    'scalable/apps/dia.svg'
+]
+
+icondir = join_paths(datadir, 'icons', 'hicolor')
+
+# Remember to call gtk-update-icon-cache when installing / uninstalling.
+
+# It would be nice if install_subdir allowed selecting files.
+foreach icon : icons_sources
+    rel_path = icon.split('/')
+    install_data(icon, install_dir : join_paths(icondir,
+                                                rel_path[0],
+                                                rel_path[1]))
+endforeach
diff --git a/data/meson.build b/data/meson.build
index 9bfe6afb..7ba47d82 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -1,3 +1,17 @@
-install_subdir('ui', install_dir : pkgdatadir)
+ui_sources = [
+    'ui/display-ui.xml',
+    'ui/integrated-ui.xml',
+    'ui/popup-ui.xml',
+    'ui/sheets-edit-dialog.xml',
+    'ui/sheets-main-dialog.xml',
+    'ui/sheets-new-dialog.xml',
+    'ui/sheets-remove-dialog.xml',
+    'ui/toolbar-ui.xml',
+    'ui/toolbox-ui.xml'
+]
+
+install_data(ui_sources, install_dir : join_paths(pkgdatadir, 'ui'))
 
 install_data('dia-splash.png', install_dir : pkgdatadir)
+
+subdir('icons')
diff --git a/meson-helpers/post-install.py b/meson-helpers/post-install.py
new file mode 100755
index 00000000..bd2c70f6
--- /dev/null
+++ b/meson-helpers/post-install.py
@@ -0,0 +1,16 @@
+#!/usr/bin/env python3
+import os
+import subprocess
+import sys
+
+# Inspired from 
https://gitlab.gnome.org/GNOME/evince/blob/d69158ecf0e2a2f1562b06c265fc86f87fe7dd6f/meson_post_install.py
+
+if not os.environ.get('MESON_INSTALL_DESTDIR_PREFIX'):
+    datadir = sys.argv[1]
+    icondir = os.path.join(datadir, 'icons', 'hicolor')
+
+    print('Updating icon cache...')
+    subprocess.call(['gtk-update-icon-cache', '-f', '-t', icondir])
+
+    print('Updating desktop database...')
+    subprocess.call(['update-desktop-database', os.path.join(datadir, 'applications')])
diff --git a/meson.build b/meson.build
index 86d0854e..c26ea222 100644
--- a/meson.build
+++ b/meson.build
@@ -76,3 +76,5 @@ subdir('app')
 subdir('data')
 subdir('doc')
 subdir('plug-ins')
+
+meson.add_install_script('meson-helpers/post-install.py', datadir)


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