meson: Make post-install script a Python script
This is so that the post install script will work on environments where *NIX shell scripts are not supported, such as on Windows cmd.exe for Visual Studio builds.
This commit is contained in:
committed by
Christoph Reiter
parent
1cd99d63d1
commit
e24e0dd8a5
36
build-aux/meson/post-install.py
Normal file
36
build-aux/meson/post-install.py
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
if 'DESTDIR' not in os.environ:
|
||||||
|
gtk_api_version = sys.argv[1]
|
||||||
|
gtk_abi_version = sys.argv[2]
|
||||||
|
gtk_bindir = sys.argv[3]
|
||||||
|
gtk_libdir = sys.argv[4]
|
||||||
|
gtk_datadir = sys.argv[5]
|
||||||
|
gtk_query_immodules = os.path.join(gtk_bindir, 'gtk-query-immodules-' + gtk_api_version)
|
||||||
|
|
||||||
|
gtk_moduledir = os.path.join(gtk_libdir, 'gtk-' + gtk_api_version, gtk_abi_version)
|
||||||
|
gtk_immodule_dir = os.path.join(gtk_moduledir, 'immodules')
|
||||||
|
gtk_printmodule_dir = os.path.join(gtk_moduledir, 'printbackends')
|
||||||
|
|
||||||
|
print('Compiling GSettings schemas...')
|
||||||
|
subprocess.call(['glib-compile-schemas',
|
||||||
|
os.path.join(gtk_datadir, 'glib-2.0', 'schemas')])
|
||||||
|
|
||||||
|
print('Updating icon cache...')
|
||||||
|
subprocess.call(['gtk-update-icon-cache', '-q', '-t' ,'-f',
|
||||||
|
os.path.join(gtk_datadir, 'icons', 'hicolor')])
|
||||||
|
|
||||||
|
print('Updating module cache for input methods...')
|
||||||
|
os.makedirs(gtk_immodule_dir, exist_ok=True)
|
||||||
|
immodule_cache_file = open(os.path.join(gtk_moduledir, 'immodules.cache'), 'w')
|
||||||
|
subprocess.call([gtk_query_immodules], stdout=immodule_cache_file)
|
||||||
|
immodule_cache_file.close()
|
||||||
|
|
||||||
|
# Untested!
|
||||||
|
print('Updating module cache for print backends...')
|
||||||
|
os.makedirs(gtk_printmodule_dir, exist_ok=True)
|
||||||
|
subprocess.call(['gio-querymodules', gtk_printmodule_dir])
|
||||||
@ -1,26 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
gtk_api_version=$1
|
|
||||||
gtk_abi_version=$2
|
|
||||||
gtk_libdir=$3
|
|
||||||
gtk_datadir=$4
|
|
||||||
|
|
||||||
# Package managers set this so we don't need to run
|
|
||||||
if [ -z "$DESTDIR" ]; then
|
|
||||||
echo Compiling GSettings schemas...
|
|
||||||
glib-compile-schemas ${gtk_datadir}/glib-2.0/schemas
|
|
||||||
|
|
||||||
echo Updating desktop database...
|
|
||||||
update-desktop-database -q ${gtk_datadir}/applications
|
|
||||||
|
|
||||||
echo Updating icon cache...
|
|
||||||
gtk-update-icon-cache -q -t -f ${gtk_datadir}/icons/hicolor
|
|
||||||
|
|
||||||
echo Updating module cache for print backends...
|
|
||||||
mkdir -p ${gtk_libdir}/gtk-3.0/3.0.0/printbackends
|
|
||||||
gio-querymodules ${gtk_libdir}/gtk-3.0/3.0.0/printbackends
|
|
||||||
|
|
||||||
echo Updating module cache for input methods...
|
|
||||||
mkdir -p ${gtk_libdir}/gtk-3.0/3.0.0/immodules
|
|
||||||
gio-querymodules ${gtk_libdir}/gtk-3.0/3.0.0/immodules
|
|
||||||
fi
|
|
||||||
@ -749,10 +749,11 @@ endif
|
|||||||
# subdir('docs/reference')
|
# subdir('docs/reference')
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# Keep this in sync with post-install.sh expected arguments
|
# Keep this in sync with post-install.py expected arguments
|
||||||
meson.add_install_script('build-aux/meson/post-install.sh',
|
meson.add_install_script('build-aux/meson/post-install.py',
|
||||||
gtk_api_version,
|
gtk_api_version,
|
||||||
gtk_binary_version,
|
gtk_binary_version,
|
||||||
|
join_paths(gtk_prefix, get_option('bindir')),
|
||||||
gtk_libdir,
|
gtk_libdir,
|
||||||
gtk_datadir)
|
gtk_datadir)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user