-
Notifications
You must be signed in to change notification settings - Fork 3
/
setup_macosx.py
107 lines (98 loc) · 3.09 KB
/
setup_macosx.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# Building PDViPER.app for MacOSX
#
# 1. Install (eg via macports) a standalone Python application
# (version 2.7), all dependencies that satisfy PDViPer as well as
# py2app and setuptools obiously
#
# 2. Select appripriate pypowder.so (binmac64-2.7) and copy it into bin/
# $ cp binmac64-2.7/pypowder.so bin/
#
# 3. Ensure PDViPeR works with the standalone Python installation
# $ python2.7 app.py
# $ tail ~/.PDViPeR/logfile.log
#
# 4. Clean build and dist directories if they exist
# $ rm -rf build/* dist/*
#
# 5. Bundle app
# $ python2.7 setup_macosx.py py2app
#
# 6. Check bundled app
# $ dist/PDViPeR.app/Contents/MacOS/PDViPeR
# $ tail ~/.PDViPeR/logfile.log
#
# 7. Create disk image
# $ hdiutil create PDViPeR-X.Y.dmg -srcfolder dist/PDViPeR.app
#
import os
from setuptools import setup
exec(open('version.py').read())
# includes = ['enthought', 'matplotlib', 'numpy', 'scipy', 'cocoa', 'chaco', 'traits', 'traitsui', 'pandas' ]
includes = []
includes.extend([# The backends are dynamically imported and thus we need to
# tell py2app about them.
'kiva.*',
'enable.*',
'enable.qt4.*',
'pyface.*',
'pyface.ui.qt4.*',
'pyface.ui.qt4.action.*',
'pyface.ui.qt4.timer.*',
'pyface.ui.qt4.wizard.*',
'pyface.ui.qt4.workbench.*',
'traitsui.qt4.*',
'traitsui.qt4.extra.*'
'mpl_toolkits.mplot3d',
])
excludes = []
excludes.extend(['_ssl',
'bottleneck',
'cairo',
'Carbon',
'Cython',
'doctest',
'Finder',
'IPython',
'jinja2',
'multiprocessing',
'nose',
'optparse',
'PyQt4',
'pyreadline'
'pytz'
'reportlab',
'tcl,'
'test',
'traits.wx',
'tornado',
'wx'])
packages = []
data_files = []
data_folders = [('bin', 'bin')]
# Parsing folders and building the data_files table
for folder, relative_path in data_folders:
for file in os.listdir(folder):
f1 = os.path.join(folder,file)
if os.path.isfile(f1): # skip directories
f2 = relative_path, [f1]
data_files.append(f2)
setup(
name = 'PDViPeR',
app = ['app.py'],
setup_requires = ['py2app'],
author = 'Gary Ruben, Kieran Spears, Lenneke Jong',
author_email = '[email protected]',
version = __version__,
description = 'PDViPeR',
options = {'py2app' : {
'iconfile': 'pdviper_icon.icns',
'optimize': 1, # 2 does not work as it strips the docstrings
'packages': packages,
'includes': includes,
'excludes': excludes,
'dist_dir': 'dist',
'xref': False,
'compressed' : True,
'argv_emulation': False,
},},
data_files=data_files)