#define pasty(m, n) m##n #define include pasty(#, include) #define ifdef pasty(#, ifdef) #define ifndef pasty(#, ifndef) #define endif pasty(#, endif) #define define pasty(#, define) #define message pasty(#, pragma message) #define undef pasty(#, undef) #define error pasty(#, error) #define else pasty(#, else) #define comment pasty(#, pragma comment) #ifdef _MSC_VER // turn off the useless "template name is too long" warning #pragma warning(disable: 4786) #endif include define NO_DEFAULT_PARSER include #ifdef USE_LIBXML2 include #ifdef _MSC_VER message("Pulling in libxml2 wrappers.") #endif #endif #ifdef USE_MSXML #ifndef _MSC_VER error "USE_MSXML is only valid for VisualC++ builds" #else message("Nothing to pull in for MSXML.") #endif #endif #ifdef USE_XERCES include #ifdef _MSC_VER message("Pulling in Xerces wrappers.") #endif #endif #ifdef USE_GARDEN #ifdef _MSC_VER message("Nothing to pull in for Garden.") #endif #endif #ifdef USE_EXPAT include #ifdef _MSC_VER message("Pulling in Expat wrappers.") #endif #endif ifndef ARABICA_NO_CODECVT_SPECIALISATIONS include endif #ifdef __GNUWIN32__ #ifdef _LIB include BOOL APIENTRY DllMain( HINSTANCE hInst , DWORD reason , LPVOID reserved ) { switch (reason) { case DLL_PROCESS_ATTACH: break; case DLL_PROCESS_DETACH: break; case DLL_THREAD_ATTACH: break; case DLL_THREAD_DETACH: break; } return TRUE; } #endif #endif