Skip to content

Commit

Permalink
Update build for python3 compay for Mac
Browse files Browse the repository at this point in the history
  • Loading branch information
yousseb committed Nov 30, 2017
1 parent 7407846 commit 726d70b
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 16 deletions.
1 change: 1 addition & 0 deletions osx/build_app.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ glib-compile-schemas data
python setup_py2app.py build
python setup_py2app.py py2app

rm -fr $FRAMEWORKS/Python.framework
# icon themes
mkdir -p $RES/share/icons
rsync -r -t --ignore-existing $INSTROOT/share/icons/Adwaita $RES/share/icons
Expand Down
85 changes: 76 additions & 9 deletions osx/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,84 @@
def frozen():
global DATADIR, LOCALEDIR, UNINSTALLED_SCHEMA

melddir = os.path.dirname(sys.executable)

DATADIR = os.path.join(melddir, "share", "meld")
LOCALEDIR = os.path.join(melddir, "share", "mo")
UNINSTALLED_SCHEMA = True

# This first bit should be unnecessary, but some things (GTK icon theme
# location, GSettings schema location) don't fall back correctly.
data_dir = os.environ.get('XDG_DATA_DIRS', "/usr/local/share/:/usr/share/")
data_dir = ":".join((melddir, data_dir))
os.environ['XDG_DATA_DIRS'] = data_dir
try:
from Foundation import NSBundle
bundle = NSBundle.mainBundle()
resource_path = bundle.resourcePath().fileSystemRepresentation().decode("utf-8")
bundle_path = bundle.bundlePath().fileSystemRepresentation().decode("utf-8")
frameworks_path = bundle.privateFrameworksPath().fileSystemRepresentation().decode("utf-8")
executable_path = bundle.executablePath().fileSystemRepresentation().decode("utf-8")
etc_path = os.path.join(resource_path , "etc")
lib_path = os.path.join(resource_path , "lib")
share_path = os.path.join(resource_path , "share")

# Default to Adwaita GTK Theme or override with user's environment var
gtk_theme= os.environ.get('GTK_THEME', "Adwaita")
os.environ['GTK_THEME'] = gtk_theme

# Main libraries environment variables
#dyld_library_path = os.environ.get('DYLD_LIBRARY_PATH', '').split(':')
#dyld_library_path.insert(0, lib_path)
#dyld_library_path.insert(1, frameworks_path)
#os.environ['DYLD_LIBRARY_PATH'] = ':'.join(dyld_library_path)
#print "DYLD_LIBRARY_PATH %s" % os.environ.get('DYLD_LIBRARY_PATH', '')

# Glib and GI environment variables
os.environ['GSETTINGS_SCHEMA_DIR'] = os.path.join(
share_path, "glib-2.0")
os.environ['GI_TYPELIB_PATH'] = os.path.join(
lib_path, "girepository-1.0")

# Avoid GTK warnings unless user specifies otherwise
debug_gtk = os.environ.get('G_ENABLE_DIAGNOSTIC', "0")
os.environ['G_ENABLE_DIAGNOSTIC'] = debug_gtk

# GTK environment variables
os.environ['GTK_DATA_PREFIX'] = resource_path
os.environ['GTK_EXE_PREFIX'] = resource_path
os.environ['GTK_PATH'] = resource_path

# XDG environment variables
os.environ['XDG_CONFIG_DIRS'] = os.path.join(etc_path, "xdg")
os.environ['XDG_DATA_DIRS'] = ":".join((share_path,
os.path.join(share_path, "meld")))

# Pango environment variables
os.environ['PANGO_RC_FILE'] = os.path.join(etc_path, "pango", "pangorc")
os.environ['PANGO_SYSCONFDIR'] = etc_path
os.environ['PANGO_LIBDIR'] = lib_path

# Gdk environment variables
os.environ['GDK_PIXBUF_MODULEDIR'] = os.path.join(
lib_path, "gdk-pixbuf-2.0", "2.10.0", "loaders")
os.environ['GDK_RENDERING'] = "image"

# Python environment variables
os.environ['PYTHONHOME'] = resource_path
original_python_path = os.environ.get('PYTHONPATH', "")
python_path = ":".join((lib_path,
os.path.join(lib_path, "python", "lib-dynload"),
os.path.join(lib_path, "python"),
original_python_path))
os.environ['PYTHONPATH'] = python_path

# meld specific
DATADIR = os.path.join(share_path, "meld")
LOCALEDIR = os.path.join(share_path, "mo")

except ImportError:
print ("frozen: ImportError")
melddir = os.path.dirname(sys.executable)
DATADIR = os.path.join(melddir, "share", "meld")
LOCALEDIR = os.path.join(melddir, "share", "mo")

# This first bit should be unnecessary, but some things (GTK icon theme
# location, GSettings schema location) don't fall back correctly.
data_dir = os.environ.get('XDG_DATA_DIRS', "/usr/local/share/:/usr/share/")
data_dir = ":".join((melddir, data_dir))
os.environ['XDG_DATA_DIRS'] = data_dir


def uninstalled():
Expand Down
15 changes: 8 additions & 7 deletions setup_py2app.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# -*- coding: utf-8 -*-

#!/usr/bin/env python
#!/usr/bin/env python3

import glob
import os
import site
from setuptools import setup
import meld.meldapp
import meld.build_helpers
import meld.conf
from setuptools import setup

APP_NAME = 'MeldMerge'
VERSION_STRING = meld.conf.__version__
Expand Down Expand Up @@ -47,11 +47,12 @@
PY_SUFFIXES.append('')

setup(
name='Meld',
name="Meld",
version=meld.conf.__version__,
description='Visual diff and merge tool',
author='Kai Willadsen',
author_email='[email protected]',
author='The Meld project',
author_email='[email protected]',
maintainer='Kai Willadsen',
url='http://meldmerge.org',
license='GPLv2+',
classifiers=[
Expand All @@ -68,8 +69,8 @@
],
packages=[
'meld',
'meld.matchers',
'meld.ui',
'meld.util',
'meld.vc',
],
package_data={
Expand Down

0 comments on commit 726d70b

Please sign in to comment.