From 69c3ed5de696d0b2316e785f82050283d3825451 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Sat, 21 Feb 2015 17:18:38 +0000 Subject: [PATCH] [LIBJPEG] - Restore the ros-diff lost in a sync. Fixes libjpeg.dll exports on MSVC builds. CORE-9242 #resolve svn path=/trunk/; revision=66391 --- .../include/reactos/libs/libjpeg/jmorecfg.h | 52 ++++++++++++++++++- .../reactos/libs/libjpeg/rosdiff.patch | 11 ++-- 2 files changed, 55 insertions(+), 8 deletions(-) diff --git a/reactos/include/reactos/libs/libjpeg/jmorecfg.h b/reactos/include/reactos/libs/libjpeg/jmorecfg.h index 679d68bdc54..04cea0dbcd1 100644 --- a/reactos/include/reactos/libs/libjpeg/jmorecfg.h +++ b/reactos/include/reactos/libs/libjpeg/jmorecfg.h @@ -238,14 +238,62 @@ typedef unsigned int JDIMENSION; * or code profilers that require it. */ +#ifdef _WIN32 +# if defined(ALL_STATIC) +# if defined(JPEG_DLL) +# undef JPEG_DLL +# endif +# if !defined(JPEG_STATIC) +# define JPEG_STATIC +# endif +# endif +# if defined(JPEG_DLL) +# if defined(JPEG_STATIC) +# undef JPEG_STATIC +# endif +# endif +# if defined(JPEG_DLL) +/* building a DLL */ +# define JPEG_IMPEXP __declspec(dllexport) +# elif defined(JPEG_STATIC) +/* building or linking to a static library */ +# define JPEG_IMPEXP +# else +/* linking to the DLL */ +# define JPEG_IMPEXP __declspec(dllimport) +# endif +# if !defined(JPEG_API) +# define JPEG_API __cdecl +# endif +/* The only remaining magic that is necessary for cygwin */ +#elif defined(__CYGWIN__) +# if !defined(JPEG_IMPEXP) +# define JPEG_IMPEXP +# endif +# if !defined(JPEG_API) +# define JPEG_API __cdecl +# endif +#endif + +/* Ensure our magic doesn't hurt other platforms */ +#if !defined(JPEG_IMPEXP) +# define JPEG_IMPEXP +#endif +#if !defined(JPEG_API) +# define JPEG_API +#endif + /* a function called through method pointers: */ #define METHODDEF(type) static type /* a function used only in its module: */ #define LOCAL(type) static type /* a function referenced thru EXTERNs: */ -#define GLOBAL(type) type +#define GLOBAL(type) type JPEG_API /* a reference to a GLOBAL function: */ -#define EXTERN(type) extern type +#ifndef EXTERN +# define EXTERN(type) extern JPEG_IMPEXP type JPEG_API +/* a reference to a "GLOBAL" function exported by sourcefiles of utility progs */ +#endif /* EXTERN */ /* This macro is used to declare a "method", that is, a function pointer. diff --git a/reactos/include/reactos/libs/libjpeg/rosdiff.patch b/reactos/include/reactos/libs/libjpeg/rosdiff.patch index 5ef5bc41ab0..97af8b93f9e 100644 --- a/reactos/include/reactos/libs/libjpeg/rosdiff.patch +++ b/reactos/include/reactos/libs/libjpeg/rosdiff.patch @@ -1,8 +1,8 @@ -Index: libs/libjpeg/jmorecfg.h +Index: include/reactos/libs/libjpeg/jmorecfg.h =================================================================== ---- libs/libjpeg/jmorecfg.h (revision 48026) -+++ libs/libjpeg/jmorecfg.h (working copy) -@@ -191,14 +191,63 @@ +--- include/reactos/libs/libjpeg/jmorecfg.h (revision 66390) ++++ include/reactos/libs/libjpeg/jmorecfg.h (working copy) +@@ -238,14 +238,62 @@ * or code profilers that require it. */ @@ -61,10 +61,9 @@ Index: libs/libjpeg/jmorecfg.h /* a reference to a GLOBAL function: */ -#define EXTERN(type) extern type +#ifndef EXTERN -+# define EXTERN(type) extern JPEG_IMPEXP type JPEG_API ++# define EXTERN(type) extern JPEG_IMPEXP type JPEG_API +/* a reference to a "GLOBAL" function exported by sourcefiles of utility progs */ +#endif /* EXTERN */ -+#define EXTERN_1(type) extern type JPEG_API /* This macro is used to declare a "method", that is, a function pointer.