]> git.saurik.com Git - wxWidgets.git/blobdiff - src/jpeg/jmorecfg.h
Disable symbols visibility support for the Clang compiler.
[wxWidgets.git] / src / jpeg / jmorecfg.h
index 29b33d02354c16dcffac024fd5aa491a75dd400d..c4a5d33b084357723b88665e6c3dac370c89b2e5 100644 (file)
@@ -130,6 +130,7 @@ typedef char JOCTET;
  */
 
 /* UINT8 must hold at least the values 0..255. */
  */
 
 /* UINT8 must hold at least the values 0..255. */
+#ifndef __WINE_BASETSD_H
 
 #ifdef HAVE_UNSIGNED_CHAR
 typedef unsigned char UINT8;
 
 #ifdef HAVE_UNSIGNED_CHAR
 typedef unsigned char UINT8;
@@ -155,39 +156,21 @@ typedef unsigned int UINT16;
 typedef short INT16;
 #endif
 
 typedef short INT16;
 #endif
 
-#if defined( __GNUWIN32__ ) || defined( __MINGW32__ ) || defined( __CYGWIN__ )
-#include <wx/msw/gccpriv.h>
-#else
-#undef wxCHECK_W32API_VERSION
-#define wxCHECK_W32API_VERSION(maj, min) (0)
-#endif
+#endif /* __WINE_BASETSD_H */
 
 /* INT32 must hold at least signed 32-bit values. */
 
 
 /* INT32 must hold at least signed 32-bit values. */
 
-/* you may define INT32_DEFINED if it is already defined somewhere */
-#ifndef INT32_DEFINED
-#ifdef XMD_H
-/* X11/xmd.h correctly defines INT32 */
-#define INT32_DEFINED
-/* Note: GnuPRO 00r1 should be tested because it does NOT define INT32 in windows.h */
-/* For this compiler, set the following test to 0. */
-#elif (_MSC_VER >= 1200) || (__BORLANDC__ >= 0x550) \
-      || wxCHECK_W32API_VERSION( 0, 5 ) \
-      || ((defined(__MINGW32__) || defined(__CYGWIN__)) \
-      && ((__GNUC__>2) || ((__GNUC__==2) && (__GNUC_MINOR__>=95)))) \
-      || (defined(__MWERKS__) && defined(__WXMSW__))
-
-/* INT32 is defined in windows.h  for these compilers */
-#define INT32_DEFINED
-#include <windows.h>
-#endif
-#endif /* !INT32_DEFINED */
-
-#ifndef INT32_DEFINED
-typedef long INT32;
-#endif
-
-#undef INT32_DEFINED
+/*
+    VZ: due to the horrible mess resulting in INT32 being defined in windows.h
+        for some compilers but not for the other ones, I have globally replace
+        INT32 with JPEG_INT32 in libjpeg code to avoid the eight level ifdef
+        which used to be here. The problem is that, of course, now we'll have
+        conflicts when upgrading to the next libjpeg release -- however
+        considering their frequency (1 in the last 5 years) it seems that
+        it is not too high a price to pay for the clean compilation with all
+        versions of mingw32 and cygwin
+ */
+typedef long JPEG_INT32;
 
 /* Datatype used for image dimensions.  The JPEG standard only supports
  * images up to 64K*64K due to 16-bit fields in SOF markers.  Therefore
 
 /* Datatype used for image dimensions.  The JPEG standard only supports
  * images up to 64K*64K due to 16-bit fields in SOF markers.  Therefore
@@ -277,9 +260,29 @@ typedef unsigned int JDIMENSION;
  * Defining HAVE_BOOLEAN before including jpeglib.h should make it work.
  */
 
  * Defining HAVE_BOOLEAN before including jpeglib.h should make it work.
  */
 
+#if 0
 #ifndef HAVE_BOOLEAN
 typedef int boolean;
 #endif
 #ifndef HAVE_BOOLEAN
 typedef int boolean;
 #endif
+#endif
+
+/*
+ * Notes about boolean above:
+ *
+ * The main conflict we see is with the Windows headers of some compilers that
+ * have a different definition of boolean. Therefore boolean has been replaced
+ * with wxjpeg_boolean throughout the jpeg sources. The alternative would have
+ * been to make the definition here the same as the Windows definition. It's
+ * not enough to just define HAVE_BOOLEAN when using the jpeg library, the
+ * definition of boolean must match when the jpeg library is compiled too.
+ *
+ * System jepg libs won't have this type, of course, so to use test
+ * HAVE_WXJPEG_BOOLEAN and fall back to boolean when not defined.
+ */
+
+typedef int wxjpeg_boolean;
+#define HAVE_WXJPEG_BOOLEAN
+
 #ifndef FALSE                  /* in case these macros already exist */
 #define FALSE  0               /* values of boolean */
 #endif
 #ifndef FALSE                  /* in case these macros already exist */
 #define FALSE  0               /* values of boolean */
 #endif