Change to a binary launcher in Mac app bundles.
This commit is contained in:
49
mac/gramps_launcher.py
Normal file
49
mac/gramps_launcher.py
Normal file
@ -0,0 +1,49 @@
|
||||
from os.path import join, dirname, abspath, normpath
|
||||
from os import environ
|
||||
from sys import argv, version
|
||||
from platform import release
|
||||
|
||||
|
||||
bundlepath = argv[0]
|
||||
|
||||
bundle_contents = join(bundlepath, 'Contents')
|
||||
bundle_res = join(bundle_contents, 'Resources')
|
||||
|
||||
bundle_lib = join(bundle_res, 'lib')
|
||||
bundle_bin = join(bundle_res, 'bin')
|
||||
bundle_data = join(bundle_res, 'share')
|
||||
bundle_etc = join(bundle_res, 'etc')
|
||||
|
||||
environ['XDG_DATA_DIRS'] = bundle_data
|
||||
environ['DYLD_LIBRARY_PATH'] = bundle_lib
|
||||
environ['LD_LIBRARY_PATH'] = bundle_lib
|
||||
environ['GTK_DATA_PREFIX'] = bundle_res
|
||||
environ['GTK_EXE_PREFIX'] = bundle_res
|
||||
environ['GTK_PATH'] = bundle_res
|
||||
|
||||
environ['PANGO_RC_FILE'] = join(bundle_etc, 'pango', 'pangorc')
|
||||
environ['PANGO_SYSCONFDIR'] = bundle_etc
|
||||
environ['PANGO_LIBDIR'] = bundle_lib
|
||||
environ['GDK_PIXBUF_MODULE_FILE'] = join(bundle_lib, 'gdk-pixbuf-2.0',
|
||||
'2.10.0', 'loaders.cache')
|
||||
if int(release().split('.')[0]) > 10:
|
||||
environ['GTK_IM_MODULE_FILE'] = join(bundle_etc, 'gtk-3.0',
|
||||
'gtk.immodules')
|
||||
|
||||
environ['GI_TYPELIB_PATH'] = join(bundle_lib, 'girepository-1.0')
|
||||
environ['GVBINDIR'] = join(bundle_lib, 'graphviz')
|
||||
environ['ENCHANT_MODULE_PATH'] = join(bundle_lib, 'enchant')
|
||||
|
||||
#Set $PYTHON to point inside the bundle
|
||||
PYVER = 'python' + version[:3]
|
||||
|
||||
environ['GRAMPSDIR'] = join (bundle_lib, PYVER, 'site-packages', 'gramps')
|
||||
environ['GRAMPSI18N'] = join(bundle_data, 'locale')
|
||||
environ['GRAMPS_RESOURCES'] = bundle_data
|
||||
environ['USERPROFILE'] = environ['HOME']
|
||||
environ['APPDATA'] = join(environ['HOME'], 'Library', 'Application Support')
|
||||
environ['PATH'] = join(bundle_contents, 'MacOS') + ':' + environ['PATH']
|
||||
|
||||
import gramps.grampsapp as app
|
||||
app.main()
|
||||
|
Reference in New Issue
Block a user