summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChun-wei Fan <fanchunwei@src.gnome.org>2018-06-08 18:04:30 +0800
committerChun-wei Fan <fanchunwei@src.gnome.org>2018-12-06 17:07:33 +0800
commit3fa28ffd92ea77da5e20842fbc621bd0a9fec557 (patch)
tree196b3d8c472af72ac3737ce5353b3fe6e97d967d
parent5383d11bb40c333b3b3a7830ec21d5bbcb98be11 (diff)
downloadgtk+-3fa28ffd92ea77da5e20842fbc621bd0a9fec557.tar.gz
build: Make post-install script a Python script
The existing post-install shell script will most likely not work on Visual Studio builds as there is normally no shell interpreter installed on the system where the build is done, but the build is normally done in a standard Windows cmd.exe console. Instead, use a Python script so that it will work on the platforms that Python supports.
-rw-r--r--build-aux/meson/post-install.py33
-rwxr-xr-xbuild-aux/meson/post-install.sh26
-rw-r--r--meson.build2
3 files changed, 34 insertions, 27 deletions
diff --git a/build-aux/meson/post-install.py b/build-aux/meson/post-install.py
new file mode 100644
index 0000000000..f84b1971f5
--- /dev/null
+++ b/build-aux/meson/post-install.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+
+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_libdir = sys.argv[3].replace('/', os.sep)
+ gtk_datadir = sys.argv[4].replace('/', os.sep)
+
+ gtk_moduledir = os.path.join(gtk_libdir, 'gtk-' + gtk_api_version, gtk_abi_version)
+ gtk_printmodule_dir = os.path.join(gtk_moduledir, 'printbackends')
+ gtk_immodule_dir = os.path.join(gtk_moduledir, 'immodules')
+
+ 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 print backends...')
+ if not os.path.isdir(gtk_printmodule_dir):
+ os.mkdir(gtk_printmodule_dir)
+ subprocess.call(['gio-querymodules', gtk_printmodule_dir])
+
+ print('Updating module cache for input methods...')
+ if not os.path.isdir(gtk_immodule_dir):
+ os.mkdir(gtk_immodule_dir)
+ subprocess.call(['gio-querymodules', gtk_immodule_dir])
diff --git a/build-aux/meson/post-install.sh b/build-aux/meson/post-install.sh
deleted file mode 100755
index 0d18b13d76..0000000000
--- a/build-aux/meson/post-install.sh
+++ /dev/null
@@ -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-4.0/4.0.0/printbackends
- gio-querymodules ${gtk_libdir}/gtk-4.0/4.0.0/printbackends
-
- echo Updating module cache for input methods...
- mkdir -p ${gtk_libdir}/gtk-4.0/4.0.0/immodules
- gio-querymodules ${gtk_libdir}/gtk-4.0/4.0.0/immodules
-fi
diff --git a/meson.build b/meson.build
index 53504f9279..923e13e635 100644
--- a/meson.build
+++ b/meson.build
@@ -897,7 +897,7 @@ if get_option('documentation')
endif
# Keep this in sync with post-install.sh 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_binary_version,
gtk_libdir,