setup.py
author Germán Póo-Caamaño <gpoo@calcifer.org>
Mon, 21 Jul 2008 11:51:12 -0400
changeset 1182 cbe418752174
parent 1179 15415a973353
permissions -rw-r--r--
hggtk: get rid of close buttons
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
    )