From 2d4941f432837f3dec841ccf922d9490dba4e6be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 3 Dec 2019 23:45:41 +0100 Subject: [PATCH] build: Use python postinstall script This is what most GNOME modules now use instead of a shell script, which makes sense given that the build system itself is written in python. This particular copy comes from nautilus ... https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/920 --- meson.build | 2 +- meson/meson-postinstall.sh | 10 ---------- meson/postinstall.py | 21 +++++++++++++++++++++ 3 files changed, 22 insertions(+), 11 deletions(-) delete mode 100755 meson/meson-postinstall.sh create mode 100755 meson/postinstall.py diff --git a/meson.build b/meson.build index ebbfb7994..1ee210703 100644 --- a/meson.build +++ b/meson.build @@ -266,4 +266,4 @@ if get_option('gtk_doc') subdir('docs/reference') endif -meson.add_install_script('meson/meson-postinstall.sh') +meson.add_install_script('meson/postinstall.py') diff --git a/meson/meson-postinstall.sh b/meson/meson-postinstall.sh deleted file mode 100755 index 4500dcb01..000000000 --- a/meson/meson-postinstall.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -# Package managers set this so we don't need to run -if [ -z "$DESTDIR" ]; then - echo Compiling GSettings schemas... - glib-compile-schemas ${MESON_INSTALL_PREFIX}/share/glib-2.0/schemas - - echo Updating desktop database... - update-desktop-database -q ${MESON_INSTALL_PREFIX}/share/applications -fi diff --git a/meson/postinstall.py b/meson/postinstall.py new file mode 100755 index 000000000..528739149 --- /dev/null +++ b/meson/postinstall.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 + +import os +import subprocess + +prefix = os.environ.get('MESON_INSTALL_PREFIX', '/usr/local') +datadir = os.path.join(prefix, 'share') + +# Packaging tools define DESTDIR and this isn't needed for them +if 'DESTDIR' not in os.environ: + print('Updating desktop database...') + desktop_database_dir = os.path.join(datadir, 'applications') + if not os.path.exists(desktop_database_dir): + os.makedirs(desktop_database_dir) + subprocess.call(['update-desktop-database', '-q', desktop_database_dir]) + + print('Compiling GSettings schemas...') + schemas_dir = os.path.join(datadir, 'glib-2.0', 'schemas') + if not os.path.exists(schemas_dir): + os.makedirs(schemas_dir) + subprocess.call(['glib-compile-schemas', schemas_dir])