add custom distutils build_ext command ignoring C compiler failues when building...
authorLisandro Dalcin <dalcinl@gmail.com>
Sun, 23 Nov 2008 00:00:37 +0000 (21:00 -0300)
committerLisandro Dalcin <dalcinl@gmail.com>
Sun, 23 Nov 2008 00:00:37 +0000 (21:00 -0300)
setup.py

index e6cb7b4fe20e281fea80cca777321a42ed487d11..11d2a5d58c52181694892ce81a2226861158cbe4 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -29,6 +29,13 @@ try:
     sys.argv.remove("--no-cython-compile")
 except ValueError:
     try:
+        from distutils.command.build_ext import build_ext as build_ext_orig
+        class build_ext(build_ext_orig):
+            def build_extension(self, ext, *args, **kargs):
+                try:
+                    build_ext_orig.build_extension(self, ext, *args, **kargs)
+                except StandardError:
+                    print("Compilation of '%s' failed" % ext.sources[0])
         from Cython.Compiler.Main import compile
         source_root = os.path.dirname(__file__)
         compiled_modules = ["Cython.Plex.Scanners",
@@ -48,6 +55,7 @@ except ValueError:
                 print("Compilation failed")
         if extensions:
             setup_args['ext_modules'] = extensions
+            setup_args['cmdclass'] = {"build_ext" : build_ext}
     except Exception:
         print("ERROR: %s" % sys.exc_info()[1])
         print("Extension module compilation failed, using plain Python implementation")