forked from AuroraMiddleware/gtk
8df0c81807
The pkg-config variables have been added in GLib 2.62.0. Let's fallback to default names for these tools in such case (`pkg-config` still returns a 0 return value, but with empty output for absent variables).
59 lines
2.6 KiB
Python
59 lines
2.6 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import os
|
|
import shutil
|
|
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_update_icon_cache = os.path.join(gtk_bindir, 'gtk-update-icon-cache')
|
|
|
|
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')
|
|
|
|
if os.name == 'nt':
|
|
for lib in ['gdk', 'gtk', 'gailutil']:
|
|
# Make copy for MSVC-built .lib files, e.g. xxx-3.lib->xxx-3.0.lib
|
|
installed_lib = os.path.join(gtk_libdir, lib + '-' + gtk_api_version.split('.')[0] + '.lib')
|
|
installed_lib_dst = os.path.join(gtk_libdir, lib + '-' + gtk_api_version + '.lib')
|
|
if os.path.isfile(installed_lib):
|
|
shutil.copyfile(installed_lib, installed_lib_dst)
|
|
|
|
print('Compiling GSettings schemas...')
|
|
glib_compile_schemas = subprocess.check_output(['pkg-config',
|
|
'--variable=glib_compile_schemas',
|
|
'gio-2.0']).strip()
|
|
if not os.path.exists(glib_compile_schemas):
|
|
# pkg-config variables only available since GLib 2.62.0.
|
|
glib_compile_schemas = 'glib-compile-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)
|
|
gio_querymodules = subprocess.check_output(['pkg-config',
|
|
'--variable=gio_querymodules',
|
|
'gio-2.0']).strip()
|
|
if not os.path.exists(gio_querymodules):
|
|
# pkg-config variables only available since GLib 2.62.0.
|
|
gio_querymodules = 'gio-querymodules'
|
|
subprocess.call([gio_querymodules, gtk_printmodule_dir])
|