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
This commit is contained in:
Florian Müllner 2019-12-03 23:45:41 +01:00
parent 45fe925a1b
commit 2d4941f432
3 changed files with 22 additions and 11 deletions

View File

@ -266,4 +266,4 @@ if get_option('gtk_doc')
subdir('docs/reference') subdir('docs/reference')
endif endif
meson.add_install_script('meson/meson-postinstall.sh') meson.add_install_script('meson/postinstall.py')

View File

@ -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

21
meson/postinstall.py Executable file
View File

@ -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])