#ifndef __CPPLUGINS__CONFIG__H__ #define __CPPLUGINS__CONFIG__H__ #include #include /* * ========================================================================= * Version numbers and strings * ========================================================================= */ #define cpPlugins_MAJ_VER @prj_MAJ_VER@ #define cpPlugins_MIN_VER @prj_MIN_VER@ #define cpPlugins_REL_VER @prj_REL_VER@ #define cpPlugins_VER "@prj_VER@" #define cpPlugins_sVER "@prj_sVER@" /* * ========================================================================= * Some useful constants and values * ========================================================================= */ #define ITK_MANUAL_INSTANTIATION #define cpPlugins_CONFIG_FILE "plugins.cfg" #define cpPlugins_QT4_USED @QT4_FOUND@ #if cpPlugins_QT4_USED == 1 # define cpPlugins_QT4 #else // cpPlugins_QT4_USED == 1 # undef cpPlugins_QT4 #endif // cpPlugins_QT4_USED == 1 /* * ========================================================================= * Identify OS * ========================================================================= */ #if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) # define cpPlugins_SYS_WINDOWS # define cpPlugins_PLUGIN_PREFIX "" # define cpPlugins_PLUGIN_EXT "dll" # ifndef WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN # endif # define NOMINMAX # include # include #elif defined( linux ) || defined( __linux ) # define cpPlugins_SYS_LINUX # define cpPlugins_PLUGIN_PREFIX "lib" # define cpPlugins_PLUGIN_EXT "so" #elif defined( __APPLE__ ) || defined( MACOSX ) || defined( macintosh ) || defined( Macintosh ) # define cpPlugins_SYS_MACOS # define cpPlugins_PLUGIN_PREFIX "lib" # define cpPlugins_PLUGIN_EXT "dylib" #elif defined( __FreeBSD__ ) || defined( __FreeBSD_kernel__ ) # define cpPlugins_SYS_FREEBSD # define cpPlugins_PLUGIN_PREFIX "lib" # define cpPlugins_PLUGIN_EXT "so" #else # error "This operating system is not supported by cpPlugins" #endif /* * ========================================================================= * Some macros * ========================================================================= */ #define cpPlugins_Id_Macro( N, C ) \ public: \ virtual const char* GetClassName( ) override { return( #N ); } \ virtual const char* GetClassCategory( ) override { return( #C ); } /* * ========================================================================= * Some functions * ========================================================================= */ namespace cpPlugins { struct PathHelper { // --------------------------------------------------------------------- inline bool operator()( char c ) const { #ifdef cpPlugins_SYS_WINDOWS return( c == '\\' || c == '/' ); #else // cpPlugins_SYS_WINDOWS return( c == '/' ); #endif // cpPlugins_SYS_WINDOWS } // --------------------------------------------------------------------- inline static std::string CanonicalPath( const std::string& path ) { #ifdef cpPlugins_SYS_WINDOWS TCHAR buffer[ 4096 ] = TEXT( "" ); TCHAR** lppPart = { NULL }; GetFullPathName( path.c_str( ), 4096, buffer, lppPart ); return( std::string( buffer ) ); #else // cpPlugins_SYS_WINDOWS return( std::string( realpath( path.c_str( ), NULL ) ) ); #endif // cpPlugins_SYS_WINDOWS } }; } // ecapseman #endif // __CPPLUGINS__CONFIG__H__ // eof - $RCSfile$