~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to setup.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-10-10 19:41:44 UTC
  • mfrom: (3759.1.1 setup_fail)
  • Revision ID: pqm@pqm.ubuntu.com-20081010194144-0hujuzlipigm8pbs
(jam) Change the setup.py build process to fail unless
        --allow-python-fallback is supplied.

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