author | TK Soh <teekaysoh@yahoo.com> |
Sun, 13 Jan 2008 06:17:30 +0000 | |
changeset 629 | 71fa0ab981e8 |
parent 476 | 617c2552703b |
child 938 | 69675240256b |
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 |
# |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
4 |
|
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
5 |
# 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
|
6 |
# 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
|
7 |
# created as dist\Output\setup.exe. |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
8 |
|
399
326f53e7e0e6
setup: add bdist_wininst source installer target
Steve Borho <steve@borho.org>
parents:
317
diff
changeset
|
9 |
# To build a source installer for use with the Mercurial NSI |
326f53e7e0e6
setup: add bdist_wininst source installer target
Steve Borho <steve@borho.org>
parents:
317
diff
changeset
|
10 |
# installer, use |
326f53e7e0e6
setup: add bdist_wininst source installer target
Steve Borho <steve@borho.org>
parents:
317
diff
changeset
|
11 |
# 'python setup.py bdist_wininst --install-script=thg_postinstall.py' |
149
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
12 |
|
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
13 |
import time |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
14 |
import sys |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
15 |
import os |
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
16 |
|
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')] |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
49 |
extra['windows'] = [{"script":"hggtk/tracelog.py", |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
50 |
"icon_resources": [(1, "icons/tortoise/python.ico")]}] |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
51 |
extra['com_server'] = ["tortoisehg"] |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
52 |
extra['console'] = ["hg", "hgproc.py", "hgutils/simplemerge"] |
399
326f53e7e0e6
setup: add bdist_wininst source installer target
Steve Borho <steve@borho.org>
parents:
317
diff
changeset
|
53 |
|
326f53e7e0e6
setup: add bdist_wininst source installer target
Steve Borho <steve@borho.org>
parents:
317
diff
changeset
|
54 |
elif 'bdist_msi' in sys.argv or 'bdist_wininst' in sys.argv: |
326f53e7e0e6
setup: add bdist_wininst source installer target
Steve Borho <steve@borho.org>
parents:
317
diff
changeset
|
55 |
# C:\Python25\share\tortoisehg\icons\... |
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
56 |
_data_files = [(os.path.join('share/tortoisehg', root), |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
57 |
[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
|
58 |
for root, dirs, files in os.walk('icons')] |
399
326f53e7e0e6
setup: add bdist_wininst source installer target
Steve Borho <steve@borho.org>
parents:
317
diff
changeset
|
59 |
|
326f53e7e0e6
setup: add bdist_wininst source installer target
Steve Borho <steve@borho.org>
parents:
317
diff
changeset
|
60 |
# C:\Python25\share\tortoisehg\*.bat, *.py |
326f53e7e0e6
setup: add bdist_wininst source installer target
Steve Borho <steve@borho.org>
parents:
317
diff
changeset
|
61 |
_data_files.append(('share/tortoisehg', |
326f53e7e0e6
setup: add bdist_wininst source installer target
Steve Borho <steve@borho.org>
parents:
317
diff
changeset
|
62 |
['hgproc.py', 'hgproc.bat', 'tortoisehg.py'])) |
326f53e7e0e6
setup: add bdist_wininst source installer target
Steve Borho <steve@borho.org>
parents:
317
diff
changeset
|
63 |
|
326f53e7e0e6
setup: add bdist_wininst source installer target
Steve Borho <steve@borho.org>
parents:
317
diff
changeset
|
64 |
# C:\Python25\mercurial\hgrc.d\tortoisehg.rc |
326f53e7e0e6
setup: add bdist_wininst source installer target
Steve Borho <steve@borho.org>
parents:
317
diff
changeset
|
65 |
_data_files.append(('mercurial/hgrc.d', ['installer/tortoisehg.rc'])) |
326f53e7e0e6
setup: add bdist_wininst source installer target
Steve Borho <steve@borho.org>
parents:
317
diff
changeset
|
66 |
|
326f53e7e0e6
setup: add bdist_wininst source installer target
Steve Borho <steve@borho.org>
parents:
317
diff
changeset
|
67 |
# C:\Python25\Scripts\tracelog.bat, thg_postinstall.py |
326f53e7e0e6
setup: add bdist_wininst source installer target
Steve Borho <steve@borho.org>
parents:
317
diff
changeset
|
68 |
extra['scripts'] = ['installer/tracelog.bat', 'installer/thg_postinstall.py'] |
251
ba8e47eb7b6e
setup: revise commments on py2exe build
TK Soh <teekaysoh@yahoo.com>
parents:
250
diff
changeset
|
69 |
|
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
70 |
opts = { |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
71 |
"py2exe" : { |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
72 |
# 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
|
73 |
"excludes" : "pywin,pywin.dialogs,pywin.dialogs.list", |
149
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
74 |
|
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
75 |
# 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
|
76 |
# Note: |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
77 |
# 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
|
78 |
# the dist directory created by py2exe. |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
79 |
# 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
|
80 |
# 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
|
81 |
"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
|
82 |
} |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
83 |
} |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
84 |
|
476
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
85 |
# specify version string, otherwise 'hg identify' will be used: |
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
86 |
version = '' |
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
87 |
|
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
88 |
import tortoise.version |
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
89 |
tortoise.version.remember_version(version) |
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
90 |
|
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
91 |
setup(name="TortoiseHg", |
476
617c2552703b
setup: use tortoise version number
Steve Borho <steve@borho.org>
parents:
457
diff
changeset
|
92 |
version=tortoise.version.get_version(), |
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
93 |
author='TK Soh', |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
94 |
author_email='teekaysoh@gmail.com', |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
95 |
url='http://tortoisehg.sourceforge.net', |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
96 |
description='Windows shell extension for Mercurial VCS', |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
97 |
license='GNU GPL2', |
457
1cdede091b78
setup: no longer ship hgwin package
Steve Borho <steve@borho.org>
parents:
399
diff
changeset
|
98 |
packages=['tortoise', 'hggtk'], |
317
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
99 |
data_files = _data_files, |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
100 |
options=opts, |
dfbc57ca3e0a
setup: begin work on MSI source installer
Steve Borho <steve@borho.org>
parents:
314
diff
changeset
|
101 |
**extra |
149
cb24a9cc2a90
add support for DLL/EXE with py2exe
TK Soh <teekaysoh@yahoo.com>
parents:
diff
changeset
|
102 |
) |