annotate setup.py @ 286:0dbb50d07764

Poke the current state before checking to see if there is text in case the world has changed and it is time for the state machine to move on.
author Simon Cross <hodgestar@gmail.com>
date Fri, 08 Apr 2011 20:58:12 +0200
parents f0c108bee0b2
children 4e8be9c52952
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.6',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
36 'Programming Language :: Python :: 2.7',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
37 'Topic :: Software Development :: Libraries :: pygame',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
38 'Topic :: Games/Entertainment :: Real Time Strategy',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
39 ],
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
40
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
41
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
42 'py2exe.target':'',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
43 #'py2exe.icon':'icon.ico', #64x64
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
44 'py2exe.binary':APP_NAME, #leave off the .exe, it will be added
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
45
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
46 'py2app.target':APP_NAME,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
47 'py2app.icon':'icon.icns', #128x128
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
48
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
49 #'cx_freeze.cmd':'~/src/cx_Freeze-3.0.3/FreezePython',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
50 'cx_freeze.cmd':'cxfreeze',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
51 'cx_freeze.target':'%s_linux' % APP_NAME,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
52 'cx_freeze.binary':APP_NAME,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
53 }
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
54
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
55 files_to_remove = ['tk84.dll',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
56 '_ssl.pyd',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
57 'tcl84.dll',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
58 os.path.join('numpy','core', '_dotblas.pyd'),
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
59 os.path.join('numpy', 'linalg', 'lapack_lite.pyd'),
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
60 ]
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
61
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
62
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
63 directories_to_remove = [os.path.join('numpy', 'distutils'),
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
64 'distutils',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
65 'tcl',
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
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
69 cmdclass = {}
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
70 PACKAGEDATA = {
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
71 'cmdclass': cmdclass,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
72
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
73 'package_dir': {'skaapsteker': 'skaapsteker',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
74 },
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
75 'packages': ['skaapsteker',
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
76 ],
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
77 'scripts': ['scripts/skaapsteker'],
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
78 }
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
79
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
80 PACKAGEDATA.update(METADATA)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
81
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
82
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
83 from distutils.core import setup, Extension
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
84 try:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
85 import py2exe
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
86 except:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
87 pass
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
88
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
89 import sys
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
90 import glob
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
91 import os
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
92 import shutil
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
93
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
94 try:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
95 cmd = sys.argv[1]
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
96 except IndexError:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
97 print 'Usage: setup.py install|py2exe|py2app|cx_freeze'
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
98 raise SystemExit
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
99
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
100 # utility for adding subdirectories
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
101 def add_files(dest,generator):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
102 for dirpath, dirnames, filenames in generator:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
103 for name in 'CVS', '.svn':
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
104 if name in dirnames:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
105 dirnames.remove(name)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
106
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
107 for name in filenames:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
108 if '~' in name: continue
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
109 suffix = os.path.splitext(name)[1]
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
110 if suffix in ('.pyc', '.pyo'): continue
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
111 if name[0] == '.': continue
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
112 filename = os.path.join(dirpath, name)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
113 dest.append(filename)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
114
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
115 # define what is our data
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
116 _DATA_DIR = os.path.join('skaapsteker', 'data')
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
117 data = []
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
118 add_files(data,os.walk(_DATA_DIR))
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
119
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
120
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
121
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
122
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
123 #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
124 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
125 PACKAGEDATA['package_data'] = {'skaapsteker': data_dirs}
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
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
129
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
130
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
131 data.extend(glob.glob('*.txt'))
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
132 #data.append('MANIFEST.in')
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
133 # define what is our source
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
134 src = []
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
135 add_files(src,os.walk('skaapsteker'))
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
136 src.extend(glob.glob('*.py'))
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
137
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
138
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
139
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
140
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
141 # build the sdist target
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
142 if cmd not in "py2exe py2app cx_freeze".split():
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
143 f = open("MANIFEST.in","w")
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
144 for l in data: f.write("include "+l+"\n")
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
145 for l in src: f.write("include "+l+"\n")
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
146 f.close()
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
147
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
148 setup(**PACKAGEDATA)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
149
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
150 # build the py2exe target
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
151 if cmd in ('py2exe',):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
152 dist_dir = os.path.join('dist',METADATA['py2exe.target'])
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
153 data_dir = dist_dir
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
154
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
155 src = 'run_game.py'
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
156 dest = METADATA['py2exe.binary']+'.py'
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
157 shutil.copy(src,dest)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
158
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
159 setup(
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
160 options={'py2exe':{
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
161 'dist_dir':dist_dir,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
162 '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
163 'excludes':['matplotlib', 'tcl', 'OpenGL'],
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
164 'ignores':['matplotlib', 'tcl', 'OpenGL'],
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
165 'bundle_files':1,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
166 }},
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
167 # windows=[{
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
168 console=[{
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
169 'script':dest,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
170 #'icon_resources':[(1,METADATA['py2exe.icon'])],
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
171 }],
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
172 )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
173
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
174 # build the py2app target
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
175 if cmd == 'py2app':
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
176 dist_dir = os.path.join('dist',METADATA['py2app.target']+'.app')
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
177 data_dir = os.path.join(dist_dir,'Contents','Resources')
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
178 from setuptools import setup
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
179
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
180 src = 'run_game.py'
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
181 dest = METADATA['py2app.target']+'.py'
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
182 shutil.copy(src,dest)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
183
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
184 APP = [dest]
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
185 DATA_FILES = []
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
186 OPTIONS = {'argv_emulation': True,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
187 #'iconfile':METADATA['py2app.icon']
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
188 }
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
189
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
190 setup(
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
191 app=APP,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
192 data_files=DATA_FILES,
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
193 options={'py2app': OPTIONS},
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
194 setup_requires=['py2app'],
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
195 )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
196
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
197 # make the cx_freeze target
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
198 if cmd == 'cx_freeze':
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
199 app_dist_dir = METADATA['cx_freeze.target'] + "_" + METADATA['version']
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
200 dist_dir = os.path.join('dist', app_dist_dir)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
201 data_dir = dist_dir
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
202
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
203 modules_exclude = "tcl,tk"
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
204 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
205 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
206 print sys_cmd
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
207 os.system(sys_cmd)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
208
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
209 import shutil
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
210 if os.path.exists(os.path.join(data_dir, "tcl")):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
211 shutil.rmtree( os.path.join(data_dir, "tcl") )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
212 if os.path.exists(os.path.join(data_dir, "tk")):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
213 shutil.rmtree( os.path.join(data_dir, "tk") )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
214
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
215
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
216
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
217 # recursively make a bunch of folders
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
218 def make_dirs(dname_):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
219 parts = list(os.path.split(dname_))
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
220 dname = None
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
221 while len(parts):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
222 if dname == None:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
223 dname = parts.pop(0)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
224 else:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
225 dname = os.path.join(dname,parts.pop(0))
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
226 if not os.path.isdir(dname):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
227 os.mkdir(dname)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
228
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
229 # copy data into the binaries
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
230 if cmd in ('py2exe','cx_freeze','py2app'):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
231 dest = data_dir
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
232 for fname in data:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
233 dname = os.path.join(dest,os.path.dirname(fname))
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
234 make_dirs(dname)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
235 if not os.path.isdir(fname):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
236 #print (fname,dname)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
237 shutil.copy(fname,dname)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
238
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
239 # make a tgz files.
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
240 if cmd == 'cx_freeze':
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
241 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
242 os.system(sys_cmd)
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
243
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
244
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
245 # remove files from the zip.
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
246 if 0 and cmd in ('py2exe'):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
247 import shutil
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
248
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
249 #shutil.rmtree( os.path.join('dist') )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
250 #shutil.rmtree( os.path.join('build') )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
251
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
252
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
253 os.system("unzip dist/library.zip -d dist\library")
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
254
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
255 for fn in files_to_remove:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
256 os.remove( os.path.join('dist', 'library', fn) )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
257
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
258
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
259 for d in directories_to_remove:
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
260 if os.path.exists( os.path.join('dist', 'library', d) ):
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
261 shutil.rmtree( os.path.join('dist', 'library', d) )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
262
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
263 os.remove( os.path.join('dist', 'library.zip') )
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
264
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
265
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
266 os.chdir("dist")
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
267 os.chdir("library")
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
268
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
269 os.system("zip -r -9 ..\library.zip .")
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("..")
d6fd1a0b192a Commit skellington.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
272 os.chdir("..")