Kiln » TortoiseHg » TortoiseHg
Clone URL:  
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# setup.py # A distutils setup script to register TortoiseHg COM server # # To build stand-alone package, use 'python setup.py py2exe' then use # InnoSetup to build the installer. By default, the installer will be # created as dist\Output\setup.exe. # To build a source installer for use with the Mercurial NSI # installer, use # 'python setup.py bdist_wininst --install-script=thg_postinstall.py' import time import sys import os # ModuleFinder can't handle runtime changes to __path__, but win32com uses them try: # if this doesn't work, try import modulefinder import py2exe.mf as modulefinder import win32com for p in win32com.__path__[1:]: modulefinder.AddPackagePath("win32com", p) for extra in ["win32com.shell"]: #,"win32com.mapi" __import__(extra) m = sys.modules[extra] for p in m.__path__[1:]: modulefinder.AddPackagePath(extra, p) except ImportError: # no build path setup, no worries. pass from distutils.core import setup import py2exe _data_files = [] extra = {} hgextmods = [] if 'py2exe' in sys.argv: # FIXME: quick hack to include installed hg extensions in py2exe binary import hgext hgextdir = os.path.dirname(hgext.__file__) hgextmods = set(["hgext." + os.path.splitext(f)[0] for f in os.listdir(hgextdir)]) _data_files = [(root, [os.path.join(root, file_) for file_ in files]) for root, dirs, files in os.walk('icons')] extra['windows'] = [{"script":"hggtk/tracelog.py", "icon_resources": [(1, "icons/tortoise/python.ico")]}] extra['com_server'] = ["tortoisehg"] extra['console'] = ["contrib/hg", "hgproc.py", "hgutils/simplemerge"] elif 'bdist_msi' in sys.argv or 'bdist_wininst' in sys.argv: # C:\Python25\share\tortoisehg\icons\... _data_files = [(os.path.join('share/tortoisehg', root), [os.path.join(root, file_) for file_ in files]) for root, dirs, files in os.walk('icons')] # C:\Python25\share\tortoisehg\*.bat, *.py _data_files.append(('share/tortoisehg', ['hgproc.py', 'hgproc.bat', 'tortoisehg.py'])) # C:\Python25\mercurial\hgrc.d\tortoisehg.rc _data_files.append(('mercurial/hgrc.d', ['installer/tortoisehg.rc'])) # C:\Python25\Scripts\tracelog.bat, thg_postinstall.py extra['scripts'] = ['installer/tracelog.bat', 'installer/thg_postinstall.py'] opts = { "py2exe" : { # Don't pull in all this MFC stuff used by the makepy UI. "excludes" : "pywin,pywin.dialogs,pywin.dialogs.list", # add library files to support PyGtk-based dialogs/windows # Note: # after py2exe build, copy GTK's etc and lib directories into # the dist directory created by py2exe. # also needed is the GTK's share/themes (as dist/share/themes), # for dialogs to display in MS-Windows XP theme. "includes" : "pango,atk,pangocairo,cairo,gobject," + ",".join(hgextmods), } } # specify version string, otherwise 'hg identify' will be used: version = '' import tortoise.version tortoise.version.remember_version(version) setup(name="TortoiseHg", version=tortoise.version.get_version(), author='TK Soh', author_email='teekaysoh@gmail.com', url='http://tortoisehg.sourceforge.net', description='Windows shell extension for Mercurial VCS', license='GNU GPL2', packages=['tortoise', 'hggtk'], data_files = _data_files, options=opts, **extra )