--- a/setup.py Sun Jul 20 05:54:01 2008 +0100
+++ b/setup.py Sun Jul 20 09:33:06 2008 -0400
@@ -8,68 +8,84 @@
import time
import sys
import os
+from distutils.core import setup
-# non-Win32 platforms doesn't require setup
-if os.name != 'nt':
- sys.stderr.write("abort: %s is for Win32 platforms only" % sys.argv[0])
- sys.exit(1)
+_description = 'Graphical interface for Mercurial VCS'
+_scripts = []
+_packages = []
+_data_files = []
+_extra = {}
+_options = {}
-# ModuleFinder can't handle runtime changes to __path__, but win32com uses them
+if os.name == 'nt':
+ _description = 'Windows shell extension for Mercurial VCS'
+ _packages = ['tortoise', 'hggtk', 'hggtk.vis', 'hggtk.iniparse']
+ _data_files = [(root, [os.path.join(root, file_) for file_ in files])
+ for root, dirs, files in os.walk('icons')]
+
+ # 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
+ 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
+ import py2exe
-_data_files = []
-extra = {}
-hgextmods = []
+ 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":"hgproc.py",
- "icon_resources": [(1, "icons/tortoise/hg.ico")]},
- {"script":"tracelog.py",
- "icon_resources": [(1, "icons/tortoise/python.ico")]}
- ]
- extra['com_server'] = ["tortoisehg"]
- extra['console'] = ["contrib/hg"]
+ 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":"hgproc.py",
+ "icon_resources": [(1, "icons/tortoise/hg.ico")]},
+ {"script":"hggtk/tracelog.py",
+ "icon_resources": [(1, "icons/tortoise/python.ico")]}
+ ]
+ extra['com_server'] = ["tortoisehg"]
+ extra['console'] = ["contrib/hg"]
-opts = {
- "py2exe" : {
- # Don't pull in all this MFC stuff used by the makepy UI.
- "excludes" : "pywin,pywin.dialogs,pywin.dialogs.list",
+ _options = {
+ "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" : "dbhash,pango,atk,pangocairo,cairo,gobject," + \
+ ",".join(hgextmods),
+ }
+ }
+ _extra['options'] = _options
- # 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" : "dbhash,pango,atk,pangocairo,cairo,gobject," + \
- ",".join(hgextmods),
- }
-}
+else: # non-NT; assume Unixish
+
+ _scripts = ['contrib/hgtk']
+ _packages = ['hggtk', 'hggtk.vis', 'hggtk.iniparse']
+ _data_files = [(os.path.join('share/pixmaps/tortoisehg', root),
+ [os.path.join(root, file_) for file_ in files])
+ for root, dirs, files in os.walk('icons')]
+ _data_files += [('lib/nautilus/extensions-2.0/python', ['contrib/nautilus-thg.py'])]
+
# specify version string, otherwise 'hg identify' will be used:
version = ''
@@ -81,11 +97,11 @@
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',
+ url='http://tortoisehg.sourceforge.net/',
+ description=_description,
license='GNU GPL2',
- packages=['tortoise', 'hggtk', 'hggtk.vis', 'hggtk.iniparse'],
- data_files = _data_files,
- options=opts,
- **extra
+ scripts=_scripts,
+ packages=_packages,
+ data_files=_data_files,
+ **_extra
)