[PyObjC-svn] r2218 - in trunk/pyobjc/pyobjc-framework-Cocoa: . Modules PyObjCTest

[email protected] Thu, 14 May 2009 03:36:55 -0500
Newsgroups gmane.comp.python.pyobjc.cvs
Message-ID <[email protected]>
Author: ronaldoussoren
Date: Thu May 14 03:36:55 2009
New Revision: 2218

Log:
Enable compilation on OSX 10.4, with some small test tweaks.

This does not mean that pyobjc-framework-Cocoa is now usable on 10.4,
I still get python crashes. I haven't investiged those yet.


Modified:
   trunk/pyobjc/pyobjc-framework-Cocoa/Modules/_CoreFoundation_CFBinaryHeap.m
   trunk/pyobjc/pyobjc-framework-Cocoa/Modules/_Foundation_inlines.m
   trunk/pyobjc/pyobjc-framework-Cocoa/Modules/pyobjc-api.h
   trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cferror.py
   trunk/pyobjc/pyobjc-framework-Cocoa/setup.py

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Modules/_CoreFoundation_CFBinaryHeap.m
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Modules/_CoreFoundation_CFBinaryHeap.m	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Modules/_CoreFoundation_CFBinaryHeap.m	Thu May 14 03:36:55 2009
@@ -7,7 +7,7 @@
 #import <CoreFoundation/CoreFoundation.h>
 #import <Foundation/Foundation.h>
 
-@interface NSObject () 
+@interface NSObject (OC_Comparison)
 -(NSComparisonResult)compare:(NSObject*)other;
 @end
 

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Modules/_Foundation_inlines.m
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Modules/_Foundation_inlines.m	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Modules/_Foundation_inlines.m	Thu May 14 03:36:55 2009
@@ -68,7 +68,7 @@
 	{"NSSwapShort", (FUNCTION)&NSSwapShort },
 	{"NSWidth", (FUNCTION)&NSWidth },
 
-#ifndef BUILD_TIGER
+#ifndef NO_OBJC2_RUNTIME
 	{"NSMakeCollectable", (FUNCTION)&NSMakeCollectable },
 	{"NSPointFromCGPoint", (FUNCTION)&NSPointFromCGPoint },
 	{"NSPointToCGPoint", (FUNCTION)&NSPointToCGPoint },

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Modules/pyobjc-api.h
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Modules/pyobjc-api.h	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Modules/pyobjc-api.h	Thu May 14 03:36:55 2009
@@ -19,6 +19,41 @@
 #include "Python.h"
 #include <objc/objc.h>
 
+#import <Foundation/NSObjCRuntime.h>
+
+#ifndef CGFLOAT_DEFINED
+
+#ifdef __LP64__
+# error "Huh? 64-bit but no CFFloat available???"
+#endif
+
+typedef float CGFloat;
+#define CGFLOAT_MIN FLT_MIN
+#define CGFLOAT_MAX FLT_MAX
+#define CGFLOAT_IS_DOUBLE 0
+#define CGFLOAT_DEFINED
+
+#endif /* CGFLOAT_DEFINED */
+
+
+#ifndef NSINTEGER_DEFINED
+
+#ifdef __LP64__
+# error "Huh? 64-bit but no NSINTEGER available???"
+#endif
+
+typedef int NSInteger;
+typedef unsigned int NSUInteger;
+
+#define NSIntegerMax    LONG_MAX
+#define NSIntegerMin    LONG_MIN
+#define NSUIntegerMax   ULONG_MAX
+
+#define NSINTEGER_DEFINED
+
+#endif
+
+
 #ifndef PyObjC_COMPAT_H
 #if (PY_VERSION_HEX < 0x02050000)
 typedef int Py_ssize_t;
@@ -32,7 +67,6 @@
 #endif
 #endif
 
-
 #import <Foundation/NSException.h>
 
 struct PyObjC_WeakLink {
@@ -42,6 +76,7 @@
 
 
 /* threading support */
+#ifdef NO_OBJC2_RUNTIME
 #define PyObjC_DURING \
 		Py_BEGIN_ALLOW_THREADS \
 		NS_DURING
@@ -51,6 +86,20 @@
 #define PyObjC_ENDHANDLER \
 		NS_ENDHANDLER \
 		Py_END_ALLOW_THREADS
+#else
+
+#define	PyObjC_DURING \
+		Py_BEGIN_ALLOW_THREADS \
+		@try {
+
+#define PyObjC_HANDLER } @catch(NSObject* _localException) { \
+		NSException* localException __attribute__((__unused__))= (NSException*)_localException;
+
+#define PyObjC_ENDHANDLER \
+		} \
+		Py_END_ALLOW_THREADS
+
+#endif
 
 #define PyObjC_BEGIN_WITH_GIL \
 	{ \

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cferror.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cferror.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/PyObjCTest/test_cferror.py	Thu May 14 03:36:55 2009
@@ -1,6 +1,6 @@
 from PyObjCTools.TestSupport import *
 from CoreFoundation import *
-from Foundation import NSString, NSCFError
+from Foundation import *
 
 
 class TestError (TestCase):

Modified: trunk/pyobjc/pyobjc-framework-Cocoa/setup.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/setup.py	(original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/setup.py	Thu May 14 03:36:55 2009
@@ -14,7 +14,7 @@
 
 import os
 if int(os.uname()[2].split('.')[0]) <= 8:
-    CFLAGS=["-DBUILD_TIGER"]
+    CFLAGS=["-DNO_OBJC2_RUNTIME"]
 else:
     CFLAGS=[]
 

------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com