THRIFT-5923: UUID python
Client: py
Patch: CJCombrink

This closes #3330
diff --git a/lib/py/setup.py b/lib/py/setup.py
index 2dd2a77..456fd6d 100644
--- a/lib/py/setup.py
+++ b/lib/py/setup.py
@@ -85,6 +85,14 @@
                               'src/ext/binary.cpp',
                               'src/ext/compact.cpp',
                           ],
+                          depends=[
+                              'src/ext/binary.h',
+                              'src/ext/compact.h',
+                              'src/ext/endian.h',
+                              'src/ext/protocol.h',
+                              'src/ext/protocol.tcc',
+                              'src/ext/types.h',
+                          ],
                           include_dirs=include_dirs,
                           )
             ],
@@ -138,6 +146,8 @@
 try:
     with_binary = True
     run_setup(with_binary)
+    sys.exit(0)
+
 except BuildFailed:
     print()
     print('*' * 80)
@@ -146,4 +156,16 @@
     print('*' * 80)
     print()
 
+# Retry but without the binary
+try:
     run_setup(False)
+    sys.exit(0)
+
+except BuildFailed:
+    print()
+    print('*' * 80)
+    print("An error occurred while trying to compile without the C extension enabled")
+    print("Build failed")
+    print('*' * 80)
+    print()
+    sys.exit(1)