~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to setup.py

  • Committer: John Arbash Meinel
  • Date: 2006-10-24 14:12:53 UTC
  • mto: This revision was merged to the branch mainline in revision 2095.
  • Revision ID: john@arbash-meinel.com-20061024141253-783fba812b197b70
(John Arbash Meinel) Update version information for 0.13 development

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
META_INFO = {'name':         'bzr',
18
18
             'version':      bzrlib.__version__,
19
19
             'author':       'Canonical Ltd',
20
 
             'author_email': 'bazaar@lists.canonical.com',
 
20
             'author_email': 'bazaar-ng@lists.ubuntu.com',
21
21
             'url':          'http://www.bazaar-vcs.org/',
22
22
             'description':  'Friendly distributed version control system',
23
23
             'license':      'GNU GPL v2',
99
99
    Create bzr.bat for win32.
100
100
    """
101
101
    def run(self):
 
102
        import os
 
103
        import sys
 
104
 
102
105
        install_scripts.run(self)   # standard action
103
106
 
104
107
        if sys.platform == "win32":
124
127
            return path
125
128
 
126
129
    def _win_batch_args(self):
127
 
        from bzrlib.win32utils import winver
128
 
        if winver == 'Windows NT':
 
130
        if os.name == 'nt':
129
131
            return '%*'
130
132
        else:
131
133
            return '%1 %2 %3 %4 %5 %6 %7 %8 %9'
147
149
## Setup
148
150
########################
149
151
 
150
 
command_classes = {'install_scripts': my_install_scripts,
151
 
                   'build': bzr_build}
152
 
from distutils.extension import Extension
153
 
ext_modules = []
154
 
try:
155
 
    from Pyrex.Distutils import build_ext
156
 
except ImportError:
157
 
    have_pyrex = False
158
 
    # try to build the extension from the prior generated source.
159
 
    print
160
 
    print ("The python package 'Pyrex' is not available."
161
 
           " If the .c files are available,")
162
 
    print ("they will be built,"
163
 
           " but modifying the .pyx files will not rebuild them.")
164
 
    print
165
 
    from distutils.command.build_ext import build_ext
166
 
else:
167
 
    have_pyrex = True
168
 
# Override the build_ext if we have Pyrex available
169
 
command_classes['build_ext'] = build_ext
170
 
unavailable_files = []
171
 
 
172
 
 
173
 
def add_pyrex_extension(module_name, **kwargs):
174
 
    """Add a pyrex module to build.
175
 
 
176
 
    This will use Pyrex to auto-generate the .c file if it is available.
177
 
    Otherwise it will fall back on the .c file. If the .c file is not
178
 
    available, it will warn, and not add anything.
179
 
 
180
 
    You can pass any extra options to Extension through kwargs. One example is
181
 
    'libraries = []'.
182
 
 
183
 
    :param module_name: The python path to the module. This will be used to
184
 
        determine the .pyx and .c files to use.
185
 
    """
186
 
    path = module_name.replace('.', '/')
187
 
    pyrex_name = path + '.pyx'
188
 
    c_name = path + '.c'
189
 
    if have_pyrex:
190
 
        ext_modules.append(Extension(module_name, [pyrex_name]))
191
 
    else:
192
 
        if not os.path.isfile(c_name):
193
 
            unavailable_files.append(c_name)
194
 
        else:
195
 
            ext_modules.append(Extension(module_name, [c_name]))
196
 
 
197
 
 
198
 
add_pyrex_extension('bzrlib._dirstate_helpers_c')
199
 
add_pyrex_extension('bzrlib._knit_load_data_c')
200
 
 
201
 
 
202
 
if unavailable_files:
203
 
    print 'C extension(s) not found:'
204
 
    print '   %s' % ('\n  '.join(unavailable_files),)
205
 
    print 'The python versions will be used instead.'
206
 
    print
207
 
 
208
 
 
209
152
if 'bdist_wininst' in sys.argv:
210
153
    import glob
211
154
    # doc files
212
155
    docs = glob.glob('doc/*.htm') + ['doc/default.css']
213
 
    dev_docs = glob.glob('doc/developers/*.htm')
214
156
    # python's distutils-based win32 installer
215
157
    ARGS = {'scripts': ['bzr', 'tools/win32/bzr-win32-bdist-postinstall.py'],
216
 
            'ext_modules': ext_modules,
217
158
            # help pages
218
 
            'data_files': [('Doc/Bazaar', docs),
219
 
                           ('Doc/Bazaar/developers', dev_docs),
220
 
                          ],
221
 
            # for building pyrex extensions
222
 
            'cmdclass': {'build_ext': build_ext},
 
159
            'data_files': [('Doc/Bazaar', docs)],
223
160
           }
224
161
 
225
162
    ARGS.update(META_INFO)
251
188
                                     version = version_str,
252
189
                                     description = META_INFO['description'],
253
190
                                     author = META_INFO['author'],
254
 
                                     copyright = "(c) Canonical Ltd, 2005-2007",
 
191
                                     copyright = "(c) Canonical Ltd, 2005-2006",
255
192
                                     company_name = "Canonical Ltd.",
256
193
                                     comments = META_INFO['description'],
257
194
                                    )
258
 
 
259
 
    additional_packages =  []
260
 
    if sys.version.startswith('2.4'):
261
 
        # adding elementtree package
262
 
        additional_packages.append('elementtree')
263
 
    elif sys.version.startswith('2.5'):
264
 
        additional_packages.append('xml.etree')
265
 
    else:
266
 
        import warnings
267
 
        warnings.warn('Unknown Python version.\n'
268
 
                      'Please check setup.py script for compatibility.')
269
 
    # email package from std python library use lazy import,
270
 
    # so we need to explicitly add all package
271
 
    additional_packages.append('email')
272
 
 
273
195
    options_list = {"py2exe": {"packages": BZRLIB['packages'] +
274
 
                                           additional_packages,
275
 
                               "excludes": ["Tkinter", "medusa", "tools"],
 
196
                                           ['elementtree'],
 
197
                               "excludes": ["Tkinter", "medusa"],
276
198
                               "dist_dir": "win32_bzr.exe",
277
199
                              },
278
200
                   }
286
208
    # std setup
287
209
    ARGS = {'scripts': ['bzr'],
288
210
            'data_files': [('man/man1', ['bzr.1'])],
289
 
            'cmdclass': command_classes,
290
 
            'ext_modules': ext_modules,
 
211
            'cmdclass': {'build': bzr_build,
 
212
                         'install_scripts': my_install_scripts,
 
213
                        },
291
214
           }
292
215
    
293
216
    ARGS.update(META_INFO)