]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Config.h.in
...
[cpPlugins.git] / lib / cpPlugins / Config.h.in
1 #ifndef __@prj_NAME@__Config__h__
2 #define __@prj_NAME@__Config__h__
3
4 #define ITK_MANUAL_INSTANTIATION
5 #include <@prj_NAME@_Export.h>
6 #include <stdexcept>
7 #include <cpPlugins/RealConfig.h>
8
9 /*
10  * =========================================================================
11  * Identify OS
12  * =========================================================================
13  */
14 #define @prj_NAME@_OS_@CMAKE_SYSTEM_NAME@
15 #ifdef @prj_NAME@_OS_Windows
16 #  define @prj_NAME@_LIB_PREFIX     ""
17 #  define @prj_NAME@_ENV_SEPARATOR  ";"
18 #  define @prj_NAME@_PATH_SEPARATOR '\\'
19 #  define @prj_NAME@_LIB_EXT        ".dll"
20 #else // @prj_NAME@_OS_Windows
21 #  define @prj_NAME@_LIB_PREFIX     "lib"
22 #  define @prj_NAME@_ENV_SEPARATOR  ":"
23 #  define @prj_NAME@_PATH_SEPARATOR '/'
24 #  ifdef @prj_NAME@_OS_Linux
25 #    define @prj_NAME@_LIB_EXT ".so"
26 #  else // @prj_NAME@_OS_Linux
27 #    define @prj_NAME@_LIB_EXT ".dylib"
28 #  endif // @prj_NAME@_OS_Linux
29 #endif // @prj_NAME@_OS_Windows
30
31 #ifdef @prj_NAME@_OS_Windows
32 #  ifndef WIN32_LEAN_AND_MEAN
33 #    define WIN32_LEAN_AND_MEAN
34 #  endif // WIN32_LEAN_AND_MEAN
35 #  define NOMINMAX
36 #  include <windows.h>
37 #  include <tchar.h>
38 #endif // @prj_NAME@_OS_Windows
39
40 /*
41  * =========================================================================
42  * Some global values
43  * =========================================================================
44  */
45
46 #define @prj_NAME@_PATHS "@prj_NAME@_PATHS"
47 #define @prj_NAME@_CONFIG "@prj_NAME@_Libraries.config"
48 #define @prj_NAME@_QT4_USED @QT4_FOUND@
49 #if @prj_NAME@_QT4_USED == 1
50 #  define @prj_NAME@_QT4
51 #  define @prj_NAME@_QVTKWidget @cpPlugins_Qt4_VTKWidget@
52 #  include <@cpPlugins_Qt4_VTKWidget@.h>
53 #else // @prj_NAME@_QT4_USED == 1
54 #  undef @prj_NAME@_QT4
55 #endif // @prj_NAME@_QT4_USED == 1
56
57 /*
58  * =========================================================================
59  * Version numbers and strings
60  * =========================================================================
61  */
62
63 #define @prj_NAME@_MAJOR_VERSION   @prj_MAJ_VER@
64 #define @prj_NAME@_MINOR_VERSION   @prj_MIN_VER@
65 #define @prj_NAME@_RELEASE_VERSION @prj_REL_VER@
66 #define @prj_NAME@_VERSION         "@prj_VERSION@"
67 #define @prj_NAME@_SHORT_VERSION   "@prj_SHORT_VERSION@"
68 #define @prj_NAME@_OpenGL_BackEnd_@VTK_RENDERING_BACKEND@
69
70 /*
71  * =========================================================================
72  * Language related macros
73  * =========================================================================
74  */
75
76 #if __cplusplus >= 201103L
77 #  define @prj_NAME@_OVERRIDE override
78 #  define @prj_NAME@_DELETE_FUNCTION =delete
79 #  define @prj_NAME@_NULLPTR  nullptr
80 #  define @prj_NAME@_NOEXCEPT noexcept
81 #  define @prj_NAME@_HAS_CXX11_STATIC_ASSERT
82 #  define @prj_NAME@_HAS_CXX11_RVREF
83 #else // __cplusplus >= 201103L
84 #  define @prj_NAME@_OVERRIDE
85 #  define @prj_NAME@_DELETE_FUNCTION
86 #  define @prj_NAME@_NULLPTR  NULL
87 #  define @prj_NAME@_NOEXCEPT throw()
88 #endif // __cplusplus >= 201103L
89
90 /*
91  * =========================================================================
92  * Some macros
93  * =========================================================================
94  */
95
96 #define @prj_NAME@_Id_Macro( _class, _category )                        \
97   public:                                                               \
98   virtual const char* GetClassName( ) const @prj_NAME@_OVERRIDE         \
99   { return( #_class ); }                                                \
100   virtual const char* GetClassCategory( ) const @prj_NAME@_OVERRIDE     \
101   { return( #_category ); }
102
103 #define @prj_NAME@Object( _cls, _scls, _cat )                           \
104   public:                                                               \
105   typedef _cls                            Self;                         \
106   typedef _scls                           Superclass;                   \
107   typedef itk::SmartPointer< Self >       Pointer;                      \
108   typedef itk::SmartPointer< const Self > ConstPointer;                 \
109   public:                                                               \
110   itkNewMacro( Self );                                                  \
111   itkTypeMacro( _cls, _scls );                                          \
112   public:                                                               \
113   virtual const char* GetClassName( ) const @prj_NAME@_OVERRIDE         \
114   { return( #_cls ); }                                                  \
115   virtual const char* GetClassCategory( ) const @prj_NAME@_OVERRIDE     \
116   { return( #_cat ); }                                                  \
117   protected:                                                            \
118   _cls( );                                                              \
119   virtual ~_cls( );                                                     \
120   virtual void _GenerateData( ) @prj_NAME@_OVERRIDE;                    \
121   private:                                                              \
122   _cls( const Self& );                                                  \
123   Self& operator=( const Self& )
124
125 #define @prj_NAME@_Compatibility_Macro                                  \
126   virtual bool IsCompatible(                                            \
127     const DataObject* other                                             \
128     ) const @prj_NAME@_OVERRIDE                                         \
129   {                                                                     \
130   return( dynamic_cast< const Self* >( other ) != NULL );               \
131   }
132
133 #endif // __@prj_NAME@__Config__h__
134
135 // eof - $RCSfile$