annotate setup.py @ 301:8d6647c912b3

Initial stab at setup.py.
author Simon Cross <hodgestar@gmail.com>
date Sat, 05 Sep 2009 16:47:10 +0000
parents
children 2db4673ea6c2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
301
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
1 # setup.py
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
2 # -*- coding: utf8 -*-
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
3 # vim:fileencoding=utf8 ai ts=4 sts=4 et sw=4
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
4
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
5 """Setuptools setup.py file for Operation Fox Assault."""
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
6
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
7 from setuptools import setup, find_packages
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
8 from gamelib import version
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
9
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
10 try:
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
11 import py2exe
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
12 from py2exe.build_exe import py2exe as builder
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
13 import os
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
14 import glob
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
15
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
16 class PkgResourceBuilder(builder):
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
17 def copy_extensions(self, extensions):
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
18 """Hack the py2exe C extension copier
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
19 to put pkg_resources into the
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
20 library.zip file.
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
21 """
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
22 builder.copy_extensions(self, extensions)
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
23 package_data = self.distribution.package_data.copy()
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
24
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
25 for package, patterns in self.distribution.package_data.items():
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
26 package_dir = os.path.join(*package.split('.'))
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
27 collect_dir = os.path.join(self.collect_dir, package_dir)
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
28
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
29 # create sub-dirs in py2exe collection area
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
30 # Copy the media files to the collection dir.
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
31 # Also add the copied file to the list of compiled
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
32 # files so it will be included in zipfile.
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
33 for pattern in patterns:
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
34 pattern = os.path.join(*pattern.split('/'))
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
35 for f in glob.glob(os.path.join(package_dir, pattern)):
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
36 name = os.path.basename(f)
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
37 folder = os.path.join(collect_dir, os.path.dirname(f))
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
38 if not os.path.exists(folder):
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
39 self.mkpath(folder)
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
40 self.copy_file(f, os.path.join(collect_dir, name))
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
41 self.compiled_files.append(os.path.join(package_dir, name))
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
42
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
43 except ImportError:
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
44 PkgResourceBuilder = None
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
45
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
46 setup ( # Metadata
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
47 name = version.NAME,
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
48 version = version.VERSION_STR,
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
49 description = version.DESCRIPTION,
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
50
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
51 author = version.AUTHOR_NAME,
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
52 author_email = version.AUTHOR_EMAIL,
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
53
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
54 maintainer = version.MAINTAINER_NAME,
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
55 maintainer_email = version.MAINTAINER_EMAIL,
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
56
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
57 # url = version.SOURCEFORGE_URL,
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
58 # download_url = version.PYPI_URL,
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
59
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
60 license = version.LICENSE,
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
61
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
62 classifiers = version.CLASSIFIERS,
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
63
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
64 platforms = version.PLATFORMS,
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
65
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
66 # Dependencies
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
67 install_requires = version.INSTALL_REQUIRES,
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
68
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
69 # Files
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
70 packages = find_packages(),
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
71 package_data = {
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
72 # NOTE: PkgResourceBuilder cannot handle the
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
73 # catch-all empty package ''.
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
74 # Include SVG files from sutekh.gui package
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
75 #'sutekh.gui': ['*.svg'],
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
76 # Include LICENSE information for sutekh package
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
77 # Include everything under the docs directory
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
78 #'sutekh': ['COPYING', 'docs/html/*'],
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
79 },
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
80 scripts = ['scripts/foxassault.py','scripts/testconsole.py'],
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
81
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
82 # py2exe
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
83 console = ['scripts/testconsole.py'],
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
84 windows = [{
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
85 'script': 'scripts/foxassault.py',
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
86 # 'icon_resources': [(0, "artwork/sutekh-icon-inkscape.ico")],
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
87 }],
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
88 cmdclass = {
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
89 'py2exe': PkgResourceBuilder,
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
90 },
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
91 options = { 'py2exe': {
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
92 'skip_archive': 1,
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
93 'dist_dir': 'dist/foxassault-%s' % version.VERSION_STR,
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
94 'packages': [
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
95 'logging', 'encodings',
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
96 ],
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
97 'includes': [
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
98 # pygame
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
99 'pygame', 'pgu',
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
100 ],
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
101 'excludes': [
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
102 ],
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
103 'ignores': [
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
104 # all database modules except sqlite3
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
105 'pgdb', 'Sybase', 'adodbapi',
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
106 'kinterbasdb', 'psycopg', 'psycopg2', 'pymssql',
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
107 'sapdb', 'pysqlite2', 'sqlite',
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
108 'MySQLdb', 'MySQLdb.connections',
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
109 'MySQLdb.constants.CR', 'MySQLdb.constants.ER',
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
110 # old datetime equivalents
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
111 'DateTime', 'DateTime.ISO',
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
112 'mx', 'mx.DateTime', 'mx.DateTime.ISO',
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
113 # email modules
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
114 'email.Generator', 'email.Iterators', 'email.Utils',
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
115 # GDK related imports we can ignore
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
116 'gdk', 'ltihooks',
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
117 # ignore things include in Python >= 2.5
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
118 'elementtree.ElementTree',
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
119 ],
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
120 }},
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
121 data_files = [
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
122 'COPYRIGHT',
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
123 'COPYING',
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
124 ],
8d6647c912b3 Initial stab at setup.py.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
125 )