]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/platform.h
solving missing definitions in include/wx/x11/cursor.h
[wxWidgets.git] / include / wx / platform.h
index 6bfd68285eefb584f78f35c12f56d9b3a99c3d0e..30936a7d16d1e1420f2522bc38e60c1cc67ca457 100644 (file)
     __WXOSX_IPHONE__ means OS X iPhone
 */
 
-/* supporting the old short name */
+/* backwards compatible define, until configure gets updated */
+#if defined __WXMAC__
+#define __WXOSX_CARBON__
+#endif
 
-#ifdef __WXMAC__ 
+#if defined(__WXOSX_CARBON__) || defined(__WXOSX_COCOA__) || defined(__WXOSX_IPHONE__) 
 #   define __WXOSX__
 #endif
 
 #ifdef __WXOSX__
 /* for backwards compatibility of code (including our own) define __WXMAC__ */
-#ifndef __WXMAC__
-#define __WXMAC__
-#endif
+#   ifndef __WXMAC__
+#       define __WXMAC__
+#   endif
 /* setup precise defines according to sdk used */
 #   include <TargetConditionals.h>
-#   if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
-#       define __WXOSX_IPHONE__
-#       undef __WXOSX_MAC__
-#   elif defined(TARGET_OS_MAC) && TARGET_OS_MAC
-#       undef __WXOSX_IPHONE__
+#   if defined(__WXOSX_IPHONE__) 
+#       if !( defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE )
+#           error "incorrect SDK for an iPhone build"
+#       endif
+#   elif defined(__WXOSX_CARBON__) || defined(__WXOSX_COCOA__)
+#       if !( defined(TARGET_OS_MAC) && TARGET_OS_MAC )
+#           error "incorrect SDK for a Mac OS X build"
+#       endif
 #       define __WXOSX_MAC__
 #   else
-#       error "unknown SDK, neither TARGET_OS_MAC nor TARGET_OS_IPHONE set in <TargetConditionals.h>"
+#       error "one of __WXOSX_IPHONE__, __WXOSX_CARBON__ or __WXOSX_COCOA__ must be defined"
 #   endif
 #endif
 
 #endif
 
 /*
-    __WXOSX__ is a common define to wxMac (Carbon) and wxCocoa ports under OS X.
+    __WXOSX_OR_COCOA__ is a common define to wxOSX (Carbon or Cocoa) and wxCocoa ports under OS X.
 
     DO NOT use this define in base library code.  Although wxMac has its own
-    private base library (and thus __WXOSX__,__WXMAC__ and related defines are
+    private base library (and thus __WXOSX_OR_COCOA__,__WXMAC__ and related defines are
     valid there), wxCocoa shares its library with other ports like wxGTK and wxX11.
 
-    To keep wx authors from screwing this up, only enable __WXOSX__ for wxCocoa when
+    To keep wx authors from screwing this up, only enable __WXOSX_OR_COCOA__ for wxCocoa when
     not compiling the base library.  We determine this by first checking if
     wxUSE_BASE is not defined.  If it is not defined, then we're not buildling
     the base library, and possibly not building wx at all (but actually building
     using OS X libraries like Carbon or CoreServices.
 
  */
-#if defined(__WXOSX_MAC__) || (defined(__WXCOCOA__) && (!defined(wxUSE_BASE) || !wxUSE_BASE)) || defined(__WXOSX_IPHONE__)
-#   define __WXOSX__
+#if defined(__WXOSX__) || (defined(__WXCOCOA__) && (!defined(wxUSE_BASE) || !wxUSE_BASE))
+#   define __WXOSX_OR_COCOA__
 #endif
 
-#ifdef __WXOSX__
+#ifdef __WXOSX_OR_COCOA__
 #    ifdef __WXMAC_XCODE__
 #        include <unistd.h>
 #        include <TargetConditionals.h>
 /*  According to Stefan even ancient Mac compilers defined __BIG_ENDIAN__ */
 #    warning "Compiling wxMac with probably wrong endianness"
 #endif
-
+/* also the 32/64 bit universal builds must be handled accordingly */
+#ifdef __DARWIN__
+#      ifdef __LP64__
+#              undef SIZEOF_VOID_P 
+#              undef SIZEOF_LONG 
+#              undef SIZEOF_SIZE_T 
+#              define SIZEOF_VOID_P 8
+#              define SIZEOF_LONG 8
+#              define SIZEOF_SIZE_T 8
+#      else
+#              undef SIZEOF_VOID_P 
+#              undef SIZEOF_LONG 
+#              undef SIZEOF_SIZE_T 
+#              define SIZEOF_VOID_P 4
+#              define SIZEOF_LONG 4
+#              define SIZEOF_SIZE_T 4
+#      endif
+#endif
 /*
    check the consistency of the settings in setup.h: note that this must be
    done after setting wxUSE_UNICODE correctly as it is used in wx/chkconf.h