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')
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
# Keep this in sync with post-install.sh expected arguments
 | 
			
		||||
meson.add_install_script('build-aux/meson/post-install.sh',
 | 
			
		||||
# Keep this in sync with post-install.py expected arguments
 | 
			
		||||
meson.add_install_script('build-aux/meson/post-install.py',
 | 
			
		||||
                         gtk_api_version,
 | 
			
		||||
                         gtk_binary_version,
 | 
			
		||||
                         join_paths(gtk_prefix, get_option('bindir')),
 | 
			
		||||
                         gtk_libdir,
 | 
			
		||||
                         gtk_datadir)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user