annotate setup.py @ 0:d6fd1a0b192a

Commit skellington.
author Simon Cross <hodgestar@gmail.com>
date Sun, 03 Apr 2011 11:02:46 +0200
parents
children f0c108bee0b2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
1 import os
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
2
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
3 # usage: python setup.py command
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
4 #
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
5 # sdist - build a source dist
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
6 # py2exe - build an exe
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
7 # py2app - build an app
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
8 # cx_freeze - build a linux binary (not implemented)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
9 #
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
10 # the goods are placed in the dist dir for you to .zip up or whatever...
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
11
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
12
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
13 APP_NAME = 'skaapsteker'
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
14 DESCRIPTION = open('README.txt').read()
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
15 CHANGES = open('CHANGES.txt').read()
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
16 TODO = open('TODO.txt').read()
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
17
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
18
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
19
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
20 METADATA = {
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
21 'name':APP_NAME,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
22 'version': '0.0.1',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
23 'license': 'short_licence',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
24 'description': '',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
25 'author': 'Adrianna Pinska, Anna Malczyk, Jeremy Thurgood, Neil Muller, Oliver Hambsch, Simon Cross, Stefano Rivera',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
26 #'author_email': '',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
27 'url': 'http://pyweek.org/e/skaapsteker',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
28 'classifiers': [
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
29 'Development Status :: 4 - Beta',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
30 'Intended Audience :: End Users/Desktop',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
31 'Intended Audience :: Information Technology',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
32 'License :: OSI Approved :: BSD License',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
33 'Operating System :: OS Independent',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
34 'Programming Language :: Python :: 2',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
35 'Programming Language :: Python :: 2.5',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
36 'Programming Language :: Python :: 2.6',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
37 'Programming Language :: Python :: 2.7',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
38 'Programming Language :: Python :: 3',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
39 'Programming Language :: Python :: 3.0',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
40 'Programming Language :: Python :: 3.1',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
41 'Programming Language :: Python :: 3.2',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
42 'Topic :: Software Development :: Libraries :: pygame',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
43 'Topic :: Games/Entertainment :: Real Time Strategy',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
44 ],
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
45
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
46
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
47 'py2exe.target':'',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
48 #'py2exe.icon':'icon.ico', #64x64
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
49 'py2exe.binary':APP_NAME, #leave off the .exe, it will be added
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
50
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
51 'py2app.target':APP_NAME,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
52 'py2app.icon':'icon.icns', #128x128
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
53
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
54 #'cx_freeze.cmd':'~/src/cx_Freeze-3.0.3/FreezePython',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
55 'cx_freeze.cmd':'cxfreeze',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
56 'cx_freeze.target':'%s_linux' % APP_NAME,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
57 'cx_freeze.binary':APP_NAME,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
58 }
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
59
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
60 files_to_remove = ['tk84.dll',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
61 '_ssl.pyd',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
62 'tcl84.dll',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
63 os.path.join('numpy','core', '_dotblas.pyd'),
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
64 os.path.join('numpy', 'linalg', 'lapack_lite.pyd'),
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
65 ]
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
66
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
67
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
68 directories_to_remove = [os.path.join('numpy', 'distutils'),
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
69 'distutils',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
70 'tcl',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
71 ]
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
72
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
73
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
74 cmdclass = {}
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
75 PACKAGEDATA = {
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
76 'cmdclass': cmdclass,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
77
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
78 'package_dir': {'skaapsteker': 'skaapsteker',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
79 },
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
80 'packages': ['skaapsteker',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
81 ],
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
82 'scripts': ['scripts/skaapsteker'],
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
83 }
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
84
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
85 PACKAGEDATA.update(METADATA)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
86
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
87
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
88 from distutils.core import setup, Extension
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
89 try:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
90 import py2exe
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
91 except:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
92 pass
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
93
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
94 import sys
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
95 import glob
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
96 import os
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
97 import shutil
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
98
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
99 try:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
100 cmd = sys.argv[1]
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
101 except IndexError:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
102 print 'Usage: setup.py install|py2exe|py2app|cx_freeze'
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
103 raise SystemExit
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
104
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
105 # utility for adding subdirectories
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
106 def add_files(dest,generator):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
107 for dirpath, dirnames, filenames in generator:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
108 for name in 'CVS', '.svn':
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
109 if name in dirnames:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
110 dirnames.remove(name)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
111
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
112 for name in filenames:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
113 if '~' in name: continue
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
114 suffix = os.path.splitext(name)[1]
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
115 if suffix in ('.pyc', '.pyo'): continue
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
116 if name[0] == '.': continue
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
117 filename = os.path.join(dirpath, name)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
118 dest.append(filename)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
119
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
120 # define what is our data
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
121 _DATA_DIR = os.path.join('skaapsteker', 'data')
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
122 data = []
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
123 add_files(data,os.walk(_DATA_DIR))
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
124
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
125
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
126
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
127
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
128 #data_dirs = [os.path.join(f2.replace(_DATA_DIR, 'data'), '*') for f2 in data]
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
129 data_dirs = [os.path.join(f2.replace(_DATA_DIR, 'data')) for f2 in data]
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
130 PACKAGEDATA['package_data'] = {'skaapsteker': data_dirs}
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
131
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
132
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
133
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
134
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
135
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
136 data.extend(glob.glob('*.txt'))
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
137 #data.append('MANIFEST.in')
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
138 # define what is our source
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
139 src = []
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
140 add_files(src,os.walk('skaapsteker'))
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
141 src.extend(glob.glob('*.py'))
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
142
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
143
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
144
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
145
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
146 # build the sdist target
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
147 if cmd not in "py2exe py2app cx_freeze".split():
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
148 f = open("MANIFEST.in","w")
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
149 for l in data: f.write("include "+l+"\n")
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
150 for l in src: f.write("include "+l+"\n")
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
151 f.close()
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
152
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
153 setup(**PACKAGEDATA)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
154
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
155 # build the py2exe target
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
156 if cmd in ('py2exe',):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
157 dist_dir = os.path.join('dist',METADATA['py2exe.target'])
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
158 data_dir = dist_dir
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
159
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
160 src = 'run_game.py'
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
161 dest = METADATA['py2exe.binary']+'.py'
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
162 shutil.copy(src,dest)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
163
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
164 setup(
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
165 options={'py2exe':{
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
166 'dist_dir':dist_dir,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
167 'dll_excludes':['_dotblas.pyd','_numpy.pyd', 'numpy.linalg.lapack_lite.pyd', 'numpy.core._dotblas.pyd'] + files_to_remove,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
168 'excludes':['matplotlib', 'tcl', 'OpenGL'],
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
169 'ignores':['matplotlib', 'tcl', 'OpenGL'],
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
170 'bundle_files':1,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
171 }},
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
172 # windows=[{
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
173 console=[{
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
174 'script':dest,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
175 #'icon_resources':[(1,METADATA['py2exe.icon'])],
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
176 }],
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
177 )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
178
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
179 # build the py2app target
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
180 if cmd == 'py2app':
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
181 dist_dir = os.path.join('dist',METADATA['py2app.target']+'.app')
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
182 data_dir = os.path.join(dist_dir,'Contents','Resources')
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
183 from setuptools import setup
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
184
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
185 src = 'run_game.py'
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
186 dest = METADATA['py2app.target']+'.py'
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
187 shutil.copy(src,dest)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
188
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
189 APP = [dest]
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
190 DATA_FILES = []
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
191 OPTIONS = {'argv_emulation': True,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
192 #'iconfile':METADATA['py2app.icon']
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
193 }
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
194
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
195 setup(
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
196 app=APP,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
197 data_files=DATA_FILES,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
198 options={'py2app': OPTIONS},
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
199 setup_requires=['py2app'],
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
200 )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
201
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
202 # make the cx_freeze target
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
203 if cmd == 'cx_freeze':
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
204 app_dist_dir = METADATA['cx_freeze.target'] + "_" + METADATA['version']
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
205 dist_dir = os.path.join('dist', app_dist_dir)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
206 data_dir = dist_dir
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
207
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
208 modules_exclude = "tcl,tk"
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
209 cmd_args = (METADATA['cx_freeze.cmd'], dist_dir, METADATA['cx_freeze.binary'], modules_exclude)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
210 sys_cmd = '%s --install-dir=%s --target-name=%s --exclude-modules=%s run_game.py' % cmd_args
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
211 print sys_cmd
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
212 os.system(sys_cmd)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
213
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
214 import shutil
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
215 if os.path.exists(os.path.join(data_dir, "tcl")):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
216 shutil.rmtree( os.path.join(data_dir, "tcl") )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
217 if os.path.exists(os.path.join(data_dir, "tk")):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
218 shutil.rmtree( os.path.join(data_dir, "tk") )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
219
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
220
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
221
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
222 # recursively make a bunch of folders
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
223 def make_dirs(dname_):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
224 parts = list(os.path.split(dname_))
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
225 dname = None
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
226 while len(parts):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
227 if dname == None:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
228 dname = parts.pop(0)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
229 else:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
230 dname = os.path.join(dname,parts.pop(0))
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
231 if not os.path.isdir(dname):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
232 os.mkdir(dname)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
233
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
234 # copy data into the binaries
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
235 if cmd in ('py2exe','cx_freeze','py2app'):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
236 dest = data_dir
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
237 for fname in data:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
238 dname = os.path.join(dest,os.path.dirname(fname))
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
239 make_dirs(dname)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
240 if not os.path.isdir(fname):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
241 #print (fname,dname)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
242 shutil.copy(fname,dname)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
243
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
244 # make a tgz files.
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
245 if cmd == 'cx_freeze':
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
246 sys_cmd = "cd dist; tar -vczf %s.tgz %s/" % (app_dist_dir,app_dist_dir)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
247 os.system(sys_cmd)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
248
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
249
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
250 # remove files from the zip.
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
251 if 0 and cmd in ('py2exe'):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
252 import shutil
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
253
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
254 #shutil.rmtree( os.path.join('dist') )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
255 #shutil.rmtree( os.path.join('build') )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
256
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
257
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
258 os.system("unzip dist/library.zip -d dist\library")
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
259
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
260 for fn in files_to_remove:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
261 os.remove( os.path.join('dist', 'library', fn) )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
262
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
263
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
264 for d in directories_to_remove:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
265 if os.path.exists( os.path.join('dist', 'library', d) ):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
266 shutil.rmtree( os.path.join('dist', 'library', d) )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
267
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
268 os.remove( os.path.join('dist', 'library.zip') )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
269
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
270
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
271 os.chdir("dist")
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
272 os.chdir("library")
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
273
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
274 os.system("zip -r -9 ..\library.zip .")
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
275
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
276 os.chdir("..")
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
277 os.chdir("..")