~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to setup.py

  • Committer: Aaron Bentley
  • Date: 2008-10-14 02:50:56 UTC
  • mfrom: (3363.18.2 direct-patching)
  • mto: This revision was merged to the branch mainline in revision 3782.
  • Revision ID: aaron@aaronbentley.com-20081014025056-dlyb96nmtv4aenuj
Merge direct-patching into fix-iter-changes

Show diffs side-by-side

added added

removed removed

Lines of Context:
144
144
    """Customized build distutils action.
145
145
    Generate bzr.1.
146
146
    """
 
147
 
147
148
    def run(self):
148
149
        build.run(self)
149
150
 
180
181
 
181
182
class build_ext_if_possible(build_ext):
182
183
 
 
184
    user_options = build_ext.user_options + [
 
185
        ('allow-python-fallback', None,
 
186
         "When an extension cannot be built, allow falling"
 
187
         " back to the pure-python implementation.")
 
188
        ]
 
189
 
 
190
    def initialize_options(self):
 
191
        build_ext.initialize_options(self)
 
192
        self.allow_python_fallback = False
 
193
 
183
194
    def run(self):
184
195
        try:
185
196
            build_ext.run(self)
186
197
        except DistutilsPlatformError, e:
 
198
            if not self.allow_python_fallback:
 
199
                log.warn('\n  Cannot build extensions.\n'
 
200
                         '  Use --allow-python-fallback to use slower'
 
201
                         ' python implementations instead.\n')
 
202
                raise
187
203
            log.warn(str(e))
188
 
            log.warn('Extensions cannot be built, '
189
 
                     'will use the Python versions instead')
 
204
            log.warn('\n  Extensions cannot be built.\n'
 
205
                     '  Using the slower Python implementations instead.\n')
190
206
 
191
207
    def build_extension(self, ext):
192
208
        try:
193
209
            build_ext.build_extension(self, ext)
194
210
        except CCompilerError:
195
 
            log.warn('Building of "%s" extension failed, '
196
 
                     'will use the Python version instead' % (ext.name,))
 
211
            if not self.allow_python_fallback:
 
212
                log.warn('\n  Failed to build "%s".\n'
 
213
                         '  Use --allow-python-fallback to use slower'
 
214
                         ' python implementations instead.\n'
 
215
                         % (ext.name,))
 
216
                raise
 
217
            log.warn('\n  Building of "%s" extension failed.\n'
 
218
                     '  Using the slower Python implementation instead.'
 
219
                     % (ext.name,))
197
220
 
198
221
 
199
222
# Override the build_ext if we have Pyrex available