// ========================================================================= // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co) // ========================================================================= #ifndef __cpPlugins__Config__h__ #define __cpPlugins__Config__h__ #include #include #include #include #include #include // ========================================================================= // Identify OS // ========================================================================= #define cpPlugins_OS_@CMAKE_SYSTEM_NAME@ #define cpPlugins_LIB_EXT "@CMAKE_SHARED_LIBRARY_SUFFIX@" #define cpPlugins_LIB_PREFIX "@CMAKE_SHARED_LIBRARY_PREFIX@" #define cpPlugins_ENV "cpPlugins_PATH" #define cpPlugins_EXT ".plg" #ifdef cpPlugins_OS_Windows # define cpPlugins_ENV_SEP ";" # ifndef WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN # endif // WIN32_LEAN_AND_MEAN # define NOMINMAX # include # include #else // cpPlugins_OS_Windows # define cpPlugins_ENV_SEP ":" #endif // cpPlugins_OS_Windows // ========================================================================= // Some generic macros // ========================================================================= #define _cpPluginsErrorMacro_2( CPPLUGINS_OBJECT, CPPLUGINS_MESSAGE ) \ { \ std::stringstream _cpPlugins_error_message_; \ _cpPlugins_error_message_ \ << "Error in \"" << __FILE__ \ << "\", line \"" << __LINE__ << "\": "; \ if( CPPLUGINS_OBJECT != NULL ) \ { \ const cpPlugins::ProcessObject* _cpPlugins_Object = \ reinterpret_cast< const cpPlugins::ProcessObject* >( \ CPPLUGINS_OBJECT \ ); \ _cpPlugins_error_message_ \ << "\"" \ << _cpPlugins_Object->GetName( ) << "\"@\"" \ << _cpPlugins_Object->GetClassName( ) << "\": "; \ } \ _cpPlugins_error_message_ CPPLUGINS_MESSAGE; \ throw std::runtime_error( _cpPlugins_error_message_.str( ) ); \ } #define _cpPluginsErrorMacro_1( CPPLUGINS_MESSAGE ) \ { \ std::stringstream _cpPlugins_error_message_; \ _cpPlugins_error_message_ \ << "Error in \"" << __FILE__ \ << "\", line \"" << __LINE__ << "\": "; \ _cpPlugins_error_message_ CPPLUGINS_MESSAGE; \ throw std::runtime_error( _cpPlugins_error_message_.str( ) ); \ } #define _cpPluginsErrorMacro_0( ) \ _cpPluginsErrorMacro_1( << "Unknown error." ) #define _cpPluginsErrorMacro_( x, A, B, FUNC, ... ) FUNC #define cpPluginsErrorMacro( ... ) \ _cpPluginsErrorMacro_(, ##__VA_ARGS__, \ _cpPluginsErrorMacro_2(__VA_ARGS__), \ _cpPluginsErrorMacro_1(__VA_ARGS__), \ _cpPluginsErrorMacro_0(__VA_ARGS__) \ ) #endif // __cpPlugins__Config__h__ // eof - $RCSfile$