~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to setup.py

merge with bzr.dev revno.1860

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#! /usr/bin/env python
2
2
 
3
 
# This is an installation script for bzr.  Run it with
4
 
# './setup.py install', or
5
 
# './setup.py --help' for more options
6
 
 
 
3
"""Installation script for bzr.
 
4
Run it with
 
5
 './setup.py install', or
 
6
 './setup.py --help' for more options
 
7
"""
 
8
 
 
9
##
 
10
# META INFORMATION FOR SETUP
 
11
 
 
12
META_INFO = {'name':         'bzr',
 
13
             'version':      '0.9pre',
 
14
             'author':       'Canonical Ltd',
 
15
             'author_email': 'bazaar-ng@lists.ubuntu.com',
 
16
             'url':          'http://www.bazaar-vcs.org/',
 
17
             'description':  'Friendly distributed version control system',
 
18
             'license':      'GNU GPL v2',
 
19
            }
 
20
 
 
21
BZRLIB = {'packages': ['bzrlib',
 
22
                       'bzrlib.benchmarks',
 
23
                       'bzrlib.bundle',
 
24
                       'bzrlib.bundle.serializer',
 
25
                       'bzrlib.doc',
 
26
                       'bzrlib.doc.api',
 
27
                       'bzrlib.export',
 
28
                       'bzrlib.plugins',
 
29
                       'bzrlib.plugins.launchpad',
 
30
                       'bzrlib.store',
 
31
                       'bzrlib.store.revision',
 
32
                       'bzrlib.store.versioned',
 
33
                       'bzrlib.tests',
 
34
                       'bzrlib.tests.blackbox',
 
35
                       'bzrlib.tests.branch_implementations',
 
36
                       'bzrlib.tests.bzrdir_implementations',
 
37
                       'bzrlib.tests.interrepository_implementations',
 
38
                       'bzrlib.tests.interversionedfile_implementations',
 
39
                       'bzrlib.tests.repository_implementations',
 
40
                       'bzrlib.tests.revisionstore_implementations',
 
41
                       'bzrlib.tests.workingtree_implementations',
 
42
                       'bzrlib.transport',
 
43
                       'bzrlib.transport.http',
 
44
                       'bzrlib.ui',
 
45
                       'bzrlib.util',
 
46
                       'bzrlib.util.configobj',
 
47
                       'bzrlib.util.effbot.org',
 
48
                       'bzrlib.util.elementtree',
 
49
                      ],
 
50
         }
 
51
 
 
52
 
 
53
##
7
54
# Reinvocation stolen from bzr, we need python2.4 by virtue of bzr_man
8
55
# including bzrlib.help
9
56
 
10
 
import os, sys
 
57
import os
 
58
import sys
11
59
 
12
60
try:
13
61
    version_info = sys.version_info
76
124
        import generate_docs
77
125
        generate_docs.main(argv=["bzr", "man"])
78
126
 
 
127
 
79
128
########################
80
129
## Setup
81
130
########################
82
131
 
83
 
setup(name='bzr',
84
 
      version='0.9pre',
85
 
      author='Canonical Ltd',
86
 
      author_email='bazaar-ng@lists.ubuntu.com',
87
 
      url='http://bazaar-vcs.org/',
88
 
      description='Friendly distributed version control system',
89
 
      license='GNU GPL v2',
90
 
      packages=['bzrlib',
91
 
                'bzrlib.benchmarks',
92
 
                'bzrlib.doc',
93
 
                'bzrlib.doc.api',
94
 
                'bzrlib.export',
95
 
                'bzrlib.plugins',
96
 
                'bzrlib.plugins.launchpad',
97
 
                'bzrlib.store',
98
 
                'bzrlib.store.revision',
99
 
                'bzrlib.store.versioned',
100
 
                'bzrlib.tests',
101
 
                'bzrlib.tests.blackbox',
102
 
                'bzrlib.tests.branch_implementations',
103
 
                'bzrlib.tests.bzrdir_implementations',
104
 
                'bzrlib.tests.interrepository_implementations',
105
 
                'bzrlib.tests.interversionedfile_implementations',
106
 
                'bzrlib.tests.repository_implementations',
107
 
                'bzrlib.tests.revisionstore_implementations',
108
 
                'bzrlib.tests.workingtree_implementations',
109
 
                'bzrlib.transport',
110
 
                'bzrlib.transport.http',
111
 
                'bzrlib.ui',
112
 
                'bzrlib.util',
113
 
                'bzrlib.util.elementtree',
114
 
                'bzrlib.util.effbot.org',
115
 
                'bzrlib.util.configobj',
116
 
                'bzrlib.bundle',
117
 
                'bzrlib.bundle.serializer'
118
 
                ],
119
 
      scripts=['bzr'],
120
 
      cmdclass={'install_scripts': my_install_scripts, 'build': bzr_build},
121
 
      data_files=[('man/man1', ['bzr.1'])],
122
 
    #   todo: install the txt files from bzrlib.doc.api.
123
 
     )
 
132
if not ('py2exe' in sys.argv):
 
133
    # std setup
 
134
    ARGS = {'scripts': ['bzr'],
 
135
            'data_files': [('man/man1', ['bzr.1'])],
 
136
            # install the txt files from bzrlib.doc.api.
 
137
            'package_data': {'bzrlib': ['doc/api/*.txt']},
 
138
           }
 
139
 
 
140
    # for python-based installer we don't need to use custom cmdclasses
 
141
    if not ('bdist_wininst' in sys.argv):
 
142
        ARGS['cmdclass'] = {'build': bzr_build,
 
143
                            'install_scripts': my_install_scripts,
 
144
                           }
 
145
    else:
 
146
        # but need to add postinstall script
 
147
        ARGS['scripts'].append('tools/win32/bzr-win32-bdist-postinstall.py')
 
148
    
 
149
    ARGS.update(META_INFO)
 
150
    ARGS.update(BZRLIB)
 
151
 
 
152
    print ARGS
 
153
    
 
154
    setup(**ARGS)
 
155
 
 
156
else:
 
157
    # py2exe setup
 
158
    import py2exe
 
159
 
 
160
    # pick real bzr version
 
161
    import bzrlib
 
162
 
 
163
    version_number = []
 
164
    for i in bzrlib.version_info[:4]:
 
165
        try:
 
166
            i = int(i)
 
167
        except ValueError:
 
168
            i = 0
 
169
        version_number.append(str(i))
 
170
    version_str = '.'.join(version_number)
 
171
 
 
172
    target = py2exe.build_exe.Target(script = "bzr",
 
173
                                     dest_base = "bzr",
 
174
                                     icon_resources = [(0,'bzr.ico')],
 
175
                                     name = META_INFO['name'],
 
176
                                     version = version_str,
 
177
                                     description = META_INFO['description'],
 
178
                                     author = META_INFO['author'],
 
179
                                     copyright = "(c) Canonical Ltd, 2005-2006",
 
180
                                     company_name = "Canonical Ltd.",
 
181
                                     comments = META_INFO['description'],
 
182
                                    )
 
183
    options_list = {"py2exe": {"packages": BZRLIB['packages'] +
 
184
                                           ['elementtree'],
 
185
                               "dist_dir": "win32_bzr.exe",
 
186
                              },
 
187
                   }
 
188
    setup(options=options_list,
 
189
          console=[target,
 
190
                   'tools/win32/bzr_postinstall.py',
 
191
                   'tools/bzr_test_dependencies.py',
 
192
                  ],
 
193
          zipfile='lib/library.zip')