// config.h #pragma once #ifndef _CONFIG_H_ #define _CONFIG_H_ #ifdef __cplusplus # ifndef CPLUSPLUS11 # define CPLUSPLUS11 201103L # endif # if __cplusplus >= CPLUSPLUS11 # ifndef EXV_USING_CPP_ELEVEN # define EXV_USING_CPP_ELEVEN # endif # endif #endif ///// Start of Visual Studio Support ///// #ifdef _MSC_VER #if _MSC_VER >= _MSC_VER_2005 #define MSDEV_2005 1 #else #define MSDEV_2003 1 #endif // Constants required by Microsoft SDKs to define SHGetFolderPathA and others #ifndef _WIN32_WINNT // Visual Studio 2012 and earlier # if _MSC_VER < 1800 # define _WIN32_WINNT 0x0501 # else # define _WIN32_WINNT 0x0600 # endif #endif #if _MSC_VER_ == _MSC_VER_2012 #define HAVE_NTOHLL 1 #endif /* Disable warning 4251 from std templates about exporting interfaces */ #ifdef EXV_HAVE_DLL #pragma warning( disable : 4251 ) #endif /* Disable warnings about 'deprecated' standard functions */ #if _MSC_VER >= _MSC_VER_2005 # pragma warning(disable : 4996) #endif /* On Microsoft compilers pid_t has to be set to int. */ #ifndef HAVE_PID_T typedef int pid_t; #endif #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif #define NOMINMAX #include #endif // _MSC_VER ///// End of Visual Studio Support ///// #include "exv_conf.h" //////////////////////////////////////// ///// End symbol visibility ///////// #if defined(__CYGWIN32__) && !defined(__CYGWIN__) /* For backwards compatibility with Cygwin b19 and earlier, we define __CYGWIN__ here, so that we can rely on checking just for that macro. */ # define __CYGWIN__ __CYGWIN32__ # define EXV_HAVE_GXXCLASSVISIBILITY #endif #ifdef WIN32 # define EXV_IMPORT __declspec(dllimport) # define EXV_EXPORT __declspec(dllexport) # define EXV_DLLLOCAL # define EXV_DLLPUBLIC #else # ifdef EXV_WANT_VISIBILITY_SUPPORT # if defined(__GNUC__) && (__GNUC__ >= 4) # define EXV_IMPORT __attribute__ ((visibility("default"))) # define EXV_EXPORT __attribute__ ((visibility("default"))) # define EXV_DLLLOCAL __attribute__ ((visibility("hidden"))) # define EXV_DLLPUBLIC __attribute__ ((visibility("default"))) # elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) # define EXV_IMPORT __global # define EXV_EXPORT __global # define EXV_DLLLOCAL __hidden # define EXV_DLLPUBLIC __global # else # define EXV_IMPORT # define EXV_EXPORT # define EXV_DLLLOCAL # define EXV_DLLPUBLIC # endif # else /* ! EXV_WANT_VISIBILITY_SUPPORT */ # define EXV_IMPORT # define EXV_EXPORT # define EXV_DLLLOCAL # define EXV_DLLPUBLIC # endif /* ! EXV_WANT_VISIBILITY_SUPPORT */ #endif /* ! WIN32 */ /* Define EXIV2API for DLL builds */ #ifdef EXV_HAVE_DLL # ifdef EXV_BUILDING_LIB # define EXIV2API EXV_EXPORT # else # define EXIV2API EXV_IMPORT # endif /* ! EXV_BUILDING_LIB */ #else # define EXIV2API #endif /* ! EXV_HAVE_DLL */ ///// End symbol visibility ///////// ///// Start of platform marcos ///////// #if defined(__MINGW32__) || defined(__MINGW64__) # ifndef __MING__ # define __MING__ 1 # endif # ifndef __MINGW__ # define __MINGW__ 1 # endif #ifdef EXV_UNICODE_PATH #error EXV_UNICODE_PATH is not supported for MinGW builds #endif #endif #ifndef __CYGWIN__ # if defined(__CYGWIN32__) || defined(__CYGWIN64__) # define __CYGWIN__ 1 # endif #endif #ifndef __LITTLE_ENDIAN__ # if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) # if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ # define __LITTLE_ENDIAN__ 1 # endif # endif #endif #ifndef __LITTLE_ENDIAN__ # if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW__) # define __LITTLE_ENDIAN__ 1 # endif #endif /* If you're using Solaris and the Solaris Studio compiler you must -library=stdcxx4 along with these inclusions below */ #if defined(OS_SOLARIS) # include # include # include # if defined(__cplusplus) # include # include # endif #endif ///// End of platform marcos ///////// ///// Path separator marcos ///// #ifndef EXV_SEPARATOR_STR # if defined(WIN32) && !defined(__CYGWIN__) # define EXV_SEPARATOR_STR "\\" # define EXV_SEPARATOR_CHR '\\' # else # define EXV_SEPARATOR_STR "/" # define EXV_SEPARATOR_CHR '/' # endif #endif ////////////////////////////////////// # include #ifdef EXV_HAVE_UNISTD_H #include #endif // Define build-env for Adobe XMPsdk #ifdef EXV_ADOBE_XMPSDK # if defined(__APPLE__) # ifndef MAC_ENV # define MAC_ENV 1 # endif # elif defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW__) # ifndef WIN_ENV # define WIN_ENV 1 # endif # else # ifndef UNIX_ENV # define UNIX_ENV 1 # endif # endif #endif // // That's all Folks! #endif // _CONFIG_H_