X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FConfig.h.in;h=71e0b03d3b6e7acc9cbf401e8458301eebdd14ba;hb=HEAD;hp=4e58a1d334576b4d23ddd44844aac41787491f1b;hpb=61b3659afe961ed248f30e26f9ca8f28fcfafddc;p=cpPlugins.git diff --git a/lib/cpPlugins/Config.h.in b/lib/cpPlugins/Config.h.in index 4e58a1d..71e0b03 100644 --- a/lib/cpPlugins/Config.h.in +++ b/lib/cpPlugins/Config.h.in @@ -1,133 +1,84 @@ +// ========================================================================= +// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co) +// ========================================================================= #ifndef __cpPlugins__Config__h__ #define __cpPlugins__Config__h__ -#include +#include +#include +#include +#include #include -#include +#include + +// ========================================================================= +// Identify OS +// ========================================================================= -/* - * ========================================================================= - * Identify OS - * ========================================================================= - */ #define cpPlugins_OS_@CMAKE_SYSTEM_NAME@ -#ifdef cpPlugins_OS_Windows -# define cpPlugins_LIB_PREFIX "" -# define cpPlugins_ENV_SEPARATOR ";" -# define cpPlugins_PATH_SEPARATOR '\\' -# define cpPlugins_LIB_EXT ".dll" -#else // cpPlugins_OS_Windows -# define cpPlugins_LIB_PREFIX "lib" -# define cpPlugins_ENV_SEPARATOR ":" -# define cpPlugins_PATH_SEPARATOR '/' -# ifdef cpPlugins_OS_Linux -# define cpPlugins_LIB_EXT ".so" -# else // cpPlugins_OS_Linux -# define cpPlugins_LIB_EXT ".dylib" -# endif // cpPlugins_OS_Linux -#endif // cpPlugins_OS_Windows +#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 global values - * ========================================================================= - */ -#define cpPlugins_PATHS "cpPlugins_PATHS" -#define cpPlugins_CONFIG "cpPlugins_Libraries.config" - -#define cpPlugins_QT4_@QT4_FOUND@ -#ifdef cpPlugins_QT4_TRUE -# ifndef cpPlugins_QT4 -# define cpPlugins_QT4 -# endif // cpPlugins_QT4 -#else // cpPlugins_QT4_TRUE -# undef cpPlugins_QT4 -#endif // cpPlugins_QT4_TRUE - -/* - * ========================================================================= - * Version numbers and strings - * ========================================================================= - */ -#define cpPlugins_MAJOR_VERSION @prj_MAJ_VER@ -#define cpPlugins_MINOR_VERSION @prj_MIN_VER@ -#define cpPlugins_RELEASE_VERSION @prj_REL_VER@ -#define cpPlugins_VERSION "@prj_VERSION@" -#define cpPlugins_SHORT_VERSION "@prj_SHORT_VERSION@" -#define cpPlugins_OpenGL_BackEnd_@VTK_RENDERING_BACKEND@ +// ========================================================================= +// Some generic macros +// ========================================================================= -/* - * ========================================================================= - * Language related macros - * ========================================================================= - */ -/* TODO - #if __cplusplus >= 201103L - # define override override - # define cpPlugins_DELETE_FUNCTION =delete - # define cpPlugins_NULLPTR nullptr - # define cpPlugins_NOEXCEPT noexcept - # define cpPlugins_HAS_CXX11_STATIC_ASSERT - # define cpPlugins_HAS_CXX11_RVREF - #else // __cplusplus >= 201103L - # define override - # define cpPlugins_DELETE_FUNCTION - # define cpPlugins_NULLPTR NULL - # define cpPlugins_NOEXCEPT throw() - #endif // __cplusplus >= 201103L -*/ +#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( ) ); \ + } -/* - * ========================================================================= - * Some macros - * ========================================================================= - */ +#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 cpPlugins_Id_Macro( _class, _category ) \ - public: \ - virtual const char* GetClassName( ) const override \ - { return( #_class ); } \ - virtual const char* GetClassCategory( ) const override \ - { return( #_category ); } +#define _cpPluginsErrorMacro_0( ) \ + _cpPluginsErrorMacro_1( << "Unknown error." ) -#define cpPluginsObject( _cls, _scls, _cat ) \ - public: \ - typedef _cls Self; \ - typedef _scls Superclass; \ - typedef itk::SmartPointer< Self > Pointer; \ - typedef itk::SmartPointer< const Self > ConstPointer; \ - public: \ - itkNewMacro( Self ); \ - itkTypeMacro( _cls, _scls ); \ - public: \ - virtual const char* GetClassName( ) const override \ - { return( #_cls ); } \ - virtual const char* GetClassCategory( ) const override \ - { return( #_cat ); } \ - protected: \ - _cls( ); \ - virtual ~_cls( ); \ - virtual void _GenerateData( ) override; \ - private: \ - _cls( const Self& ); \ - Self& operator=( const Self& ) +#define _cpPluginsErrorMacro_( x, A, B, FUNC, ... ) FUNC -#define cpPlugins_Compatibility_Macro \ - virtual bool IsCompatible( \ - const DataObject* other \ - ) const override \ - { \ - return( dynamic_cast< const Self* >( other ) != NULL ); \ - } +#define cpPluginsErrorMacro( ... ) \ + _cpPluginsErrorMacro_(, ##__VA_ARGS__, \ + _cpPluginsErrorMacro_2(__VA_ARGS__), \ + _cpPluginsErrorMacro_1(__VA_ARGS__), \ + _cpPluginsErrorMacro_0(__VA_ARGS__) \ + ) #endif // __cpPlugins__Config__h__