author | TK Soh <teekaysoh@yahoo.com> |
Sun, 06 Apr 2008 11:33:06 +0100 | |
changeset 1108 | 5a9d20cfcb29 |
parent 1093 | 73fd648de9ff |
child 1159 | d3567aa402ad |
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 |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
11 |
|
1093
73fd648de9ff
setup: abort if run on non-Windows platforms
TK Soh <teekaysoh@yahoo.com>
parents:
1006
diff
changeset
|
12 |
# non-Win32 platforms doesn't require setup |
73fd648de9ff
setup: abort if run on non-Windows platforms
TK Soh <teekaysoh@yahoo.com>
parents:
1006
diff
changeset
|
13 |
if os.name != 'nt': |
73fd648de9ff
setup: abort if run on non-Windows platforms
TK Soh <teekaysoh@yahoo.com>
parents:
1006
diff
changeset
|
14 |
sys.stderr.write("abort: %s is for Win32 platforms only" % sys.argv[0]) |
73fd648de9ff
setup: abort if run on non-Windows platforms
TK Soh <teekaysoh@yahoo.com>
parents:
1006
diff
changeset
|
15 |
sys.exit(1) |
73fd648de9ff
setup: abort if run on non-Windows platforms
TK Soh <teekaysoh@yahoo.com>
parents:
1006
diff
changeset
|
16 |
|
149
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
17 |
# ModuleFinder can't handle runtime changes to __path__, but win32com uses them |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
18 |
|
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
19 |
try: |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
20 |
# if this doesn't work, try import modulefinder |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
21 |
import py2exe.mf as modulefinder |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
22 |
import win32com |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
23 |
for p in win32com.__path__[1:]: |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
24 |
modulefinder.AddPackagePath("win32com", p) |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
25 |
for extra in ["win32com.shell"]: #,"win32com.mapi" |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
26 |
__import__(extra) |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
27 |
m = sys.modules[extra] |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
28 |
for p in m.__path__[1:]: |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
29 |
modulefinder.AddPackagePath(extra, p) |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
30 |
except ImportError: |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
31 |
# no build path setup, no worries. |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
32 |
pass |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
33 |
|
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
34 |
from distutils.core import setup |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
35 |
import py2exe |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
36 |
|
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
37 |
_data_files = [] |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
38 |
extra = {} |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
39 |
hgextmods = [] |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
40 |
|
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
41 |
if 'py2exe' in sys.argv: |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
42 |
# FIXME: quick hack to include installed hg extensions in py2exe binary |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
43 |
import hgext |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
44 |
hgextdir = os.path.dirname(hgext.__file__) |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
45 |
hgextmods = set(["hgext." + os.path.splitext(f)[0] |
254
497323c43ee8
setup: quick hack to force py2exe to include hgext modules
TK Soh <teekaysoh@yahoo.com>
parents:
251
diff
changeset
|
46 |
for f in os.listdir(hgextdir)]) |
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
47 |
_data_files = [(root, [os.path.join(root, file_) for file_ in files]) |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
48 |
for root, dirs, files in os.walk('icons')] |
1002
1b42d593d866
setup: switch hgproc.py from console to window app
Steve Borho <steve@borho.org>
parents:
938
diff
changeset
|
49 |
extra['windows'] = [ |
1b42d593d866
setup: switch hgproc.py from console to window app
Steve Borho <steve@borho.org>
parents:
938
diff
changeset
|
50 |
{"script":"hgproc.py", |
1b42d593d866
setup: switch hgproc.py from console to window app
Steve Borho <steve@borho.org>
parents:
938
diff
changeset
|
51 |
"icon_resources": [(1, "icons/tortoise/hg.ico")]}, |
1b42d593d866
setup: switch hgproc.py from console to window app
Steve Borho <steve@borho.org>
parents:
938
diff
changeset
|
52 |
{"script":"hggtk/tracelog.py", |
1b42d593d866
setup: switch hgproc.py from console to window app
Steve Borho <steve@borho.org>
parents:
938
diff
changeset
|
53 |
"icon_resources": [(1, "icons/tortoise/python.ico")]} |
1b42d593d866
setup: switch hgproc.py from console to window app
Steve Borho <steve@borho.org>
parents:
938
diff
changeset
|
54 |
] |
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
55 |
extra['com_server'] = ["tortoisehg"] |
1006 | 56 |
extra['console'] = ["contrib/hg"] |
251
ba8e47eb7b6e
setup: revise commments on py2exe build
TK Soh <teekaysoh@yahoo.com>
parents:
250
diff
changeset
|
57 |
|
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
58 |
opts = { |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
59 |
"py2exe" : { |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
60 |
# Don't pull in all this MFC stuff used by the makepy UI. |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
61 |
"excludes" : "pywin,pywin.dialogs,pywin.dialogs.list", |
149
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
62 |
|
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
63 |
# add library files to support PyGtk-based dialogs/windows |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
64 |
# Note: |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
65 |
# after py2exe build, copy GTK's etc and lib directories into |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
66 |
# the dist directory created by py2exe. |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
67 |
# also needed is the GTK's share/themes (as dist/share/themes), |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
68 |
# for dialogs to display in MS-Windows XP theme. |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
69 |
"includes" : "pango,atk,pangocairo,cairo,gobject," + ",".join(hgextmods), |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
70 |
} |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
71 |
} |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
72 |
|
476
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
73 |
# specify version string, otherwise 'hg identify' will be used: |
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
74 |
version = '' |
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
75 |
|
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
76 |
import tortoise.version |
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
77 |
tortoise.version.remember_version(version) |
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
78 |
|
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
79 |
setup(name="TortoiseHg", |
476
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
80 |
version=tortoise.version.get_version(), |
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
81 |
author='TK Soh', |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
82 |
author_email='teekaysoh@gmail.com', |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
83 |
url='http://tortoisehg.sourceforge.net', |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
84 |
description='Windows shell extension for Mercurial VCS', |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
85 |
license='GNU GPL2', |
1006 | 86 |
packages=['tortoise', 'hggtk', 'hggtk.vis', 'hggtk.iniparse'], |
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
87 |
data_files = _data_files, |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
88 |
options=opts, |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
89 |
**extra |
149
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
90 |
) |