author | Germán Póo-Caamaño <gpoo@calcifer.org> |
Sun, 20 Jul 2008 09:33:06 -0400 | |
changeset 1179 | 15415a973353 |
parent 1165 | 037ba7eed96b |
permissions | -rw-r--r-- |
149
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
1 |
# setup.py |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
2 |
# A distutils setup script to register TortoiseHg COM server |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
3 |
|
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
4 |
# To build stand-alone package, use 'python setup.py py2exe' then use |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
5 |
# InnoSetup to build the installer. By default, the installer will be |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
6 |
# created as dist\Output\setup.exe. |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
7 |
|
149
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
8 |
import time |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
9 |
import sys |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
10 |
import os |
1179
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
11 |
from distutils.core import setup |
149
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
12 |
|
1179
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
13 |
_description = 'Graphical interface for Mercurial VCS' |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
14 |
_scripts = [] |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
15 |
_packages = [] |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
16 |
_data_files = [] |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
17 |
_extra = {} |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
18 |
_options = {} |
1093
73fd648de9ff
setup: abort if run on non-Windows platforms
TK Soh <teekaysoh@yahoo.com>
parents:
1006
diff
changeset
|
19 |
|
1179
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
20 |
if os.name == 'nt': |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
21 |
_description = 'Windows shell extension for Mercurial VCS' |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
22 |
_packages = ['tortoise', 'hggtk', 'hggtk.vis', 'hggtk.iniparse'] |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
23 |
_data_files = [(root, [os.path.join(root, file_) for file_ in files]) |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
24 |
for root, dirs, files in os.walk('icons')] |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
25 |
|
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
26 |
# ModuleFinder can't handle runtime changes to __path__, but win32com uses them |
149
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
27 |
|
1179
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
28 |
try: |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
29 |
# if this doesn't work, try import modulefinder |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
30 |
import py2exe.mf as modulefinder |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
31 |
import win32com |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
32 |
for p in win32com.__path__[1:]: |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
33 |
modulefinder.AddPackagePath("win32com", p) |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
34 |
for extra in ["win32com.shell"]: #,"win32com.mapi" |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
35 |
__import__(extra) |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
36 |
m = sys.modules[extra] |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
37 |
for p in m.__path__[1:]: |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
38 |
modulefinder.AddPackagePath(extra, p) |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
39 |
except ImportError: |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
40 |
# no build path setup, no worries. |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
41 |
pass |
149
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
42 |
|
1179
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
43 |
import py2exe |
149
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
44 |
|
1179
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
45 |
hgextmods = [] |
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
46 |
|
1179
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
47 |
if 'py2exe' in sys.argv: |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
48 |
# FIXME: quick hack to include installed hg extensions in py2exe binary |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
49 |
import hgext |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
50 |
hgextdir = os.path.dirname(hgext.__file__) |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
51 |
hgextmods = set(["hgext." + os.path.splitext(f)[0] |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
52 |
for f in os.listdir(hgextdir)]) |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
53 |
_data_files = [(root, [os.path.join(root, file_) for file_ in files]) |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
54 |
for root, dirs, files in os.walk('icons')] |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
55 |
extra['windows'] = [ |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
56 |
{"script":"hgproc.py", |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
57 |
"icon_resources": [(1, "icons/tortoise/hg.ico")]}, |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
58 |
{"script":"hggtk/tracelog.py", |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
59 |
"icon_resources": [(1, "icons/tortoise/python.ico")]} |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
60 |
] |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
61 |
extra['com_server'] = ["tortoisehg"] |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
62 |
extra['console'] = ["contrib/hg"] |
251
ba8e47eb7b6e
setup: revise commments on py2exe build
TK Soh <teekaysoh@yahoo.com>
parents:
250
diff
changeset
|
63 |
|
1179
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
64 |
_options = { |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
65 |
"py2exe" : { |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
66 |
# Don't pull in all this MFC stuff used by the makepy UI. |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
67 |
"excludes" : "pywin,pywin.dialogs,pywin.dialogs.list", |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
68 |
# add library files to support PyGtk-based dialogs/windows |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
69 |
# Note: |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
70 |
# after py2exe build, copy GTK's etc and lib directories into |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
71 |
# the dist directory created by py2exe. |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
72 |
# also needed is the GTK's share/themes (as dist/share/themes), |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
73 |
# for dialogs to display in MS-Windows XP theme. |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
74 |
"includes" : "dbhash,pango,atk,pangocairo,cairo,gobject," + \ |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
75 |
",".join(hgextmods), |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
76 |
} |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
77 |
} |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
78 |
_extra['options'] = _options |
149
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
79 |
|
1179
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
80 |
else: # non-NT; assume Unixish |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
81 |
|
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
82 |
_scripts = ['contrib/hgtk'] |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
83 |
_packages = ['hggtk', 'hggtk.vis', 'hggtk.iniparse'] |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
84 |
_data_files = [(os.path.join('share/pixmaps/tortoisehg', root), |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
85 |
[os.path.join(root, file_) for file_ in files]) |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
86 |
for root, dirs, files in os.walk('icons')] |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
87 |
_data_files += [('lib/nautilus/extensions-2.0/python', ['contrib/nautilus-thg.py'])] |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
88 |
|
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
89 |
|
476
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
90 |
# specify version string, otherwise 'hg identify' will be used: |
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
91 |
version = '' |
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
92 |
|
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
93 |
import tortoise.version |
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
94 |
tortoise.version.remember_version(version) |
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
95 |
|
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
96 |
setup(name="TortoiseHg", |
476
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
97 |
version=tortoise.version.get_version(), |
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
98 |
author='TK Soh', |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
99 |
author_email='teekaysoh@gmail.com', |
1179
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
100 |
url='http://tortoisehg.sourceforge.net/', |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
101 |
description=_description, |
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
102 |
license='GNU GPL2', |
1179
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
103 |
scripts=_scripts, |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
104 |
packages=_packages, |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
105 |
data_files=_data_files, |
15415a973353
setup: add support for non-windows platforms
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1165
diff
changeset
|
106 |
**_extra |
149
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
107 |
) |