50 #ifndef OPENMESH_COMPILER_H 51 #define OPENMESH_COMPILER_H 55 #if defined(ACGMAKE_STATIC_BUILD) 56 # define OM_STATIC_BUILD 1 61 #if defined(_DEBUG) || defined(DEBUG) 68 #if defined(_MSC_VER) && \ 69 ( defined(__ICL) || defined(__INTEL_COMPILER) || defined(__ICC) ) 70 # if !defined(__INTEL_COMPILER) 71 # define __INTEL_COMPILER __ICL 73 # define OM_USE_INTEL_COMPILER 1 81 #if defined(_MSC_VER) && !defined(OM_USE_INTEL_COMPILER) 82 # if (_MSC_VER == 1300) 85 # define OM_OUT_OF_CLASS_TEMPLATE 0 86 # define OM_PARTIAL_SPECIALIZATION 0 87 # define OM_INCLUDE_TEMPLATES 1 88 # elif (_MSC_VER == 1310) 91 # define OM_OUT_OF_CLASS_TEMPLATE 1 92 # define OM_PARTIAL_SPECIALIZATION 1 93 # define OM_INCLUDE_TEMPLATES 1 94 # elif (_MSC_VER >= 1400) // settings for .NET 2005 (NOTE: not fully tested) 96 # define OM_OUT_OF_CLASS_TEMPLATE 1 97 # define OM_PARTIAL_SPECIALIZATION 1 98 # define OM_INCLUDE_TEMPLATES 1 100 # error "Version 7 (.NET 2002) or higher of the MS VC++ is required!" 103 # define OM_STATIC_BUILD 1 105 # define OM_REENTRANT 1 107 # define OM_CC "MSVC++" 108 # define OM_CC_VERSION _MSC_VER 111 # if defined(__cplusplus) && !defined(_CPPRTTI) 112 # error "Enable Runtime Type Information (Compiler Option /GR)!" 114 # if !defined(_USE_MATH_DEFINES) 115 # error "You have to define _USE_MATH_DEFINES in the compiler settings!" 118 #elif defined(__BORLANDC__) 119 # error "Borland Compiler are not supported yet!" 121 #elif defined(__GNUC__) && !defined(__ICC) 123 # define OM_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 ) 124 # define OM_GCC_MAJOR __GNUC__ 125 # define OM_GCC_MINOR __GNUC_MINOR__ 126 # if (OM_GCC_VERSION >= 30200) 127 # define OM_TYPENAME typename 128 # define OM_OUT_OF_CLASS_TEMPLATE 1 129 # define OM_PARTIAL_SPECIALIZATION 1 130 # define OM_INCLUDE_TEMPLATES 1 132 # error "Version 3.2.0 or better of the GNU Compiler is required!" 134 # if defined(_REENTRANT) 135 # define OM_REENTRANT 1 138 # define OM_CC_VERSION OM_GCC_VERSION 140 #elif defined(__ICC) || defined(__INTEL_COMPILER) 142 # define OM_TYPENAME typename 143 # define OM_OUT_OF_CLASS_TEMPLATE 1 144 # define OM_PARTIAL_SPECIALIZATION 1 145 # define OM_INCLUDE_TEMPLATES 1 146 # if defined(_REENTRANT) || defined(_MT) 147 # define OM_REENTRANT 1 150 # define OM_CC_VERSION __INTEL_COMPILER 152 # if defined(_MSC_VER) || defined(WIN32) 153 # define OM_STATIC_BUILD 1 156 #elif defined(__MIPS_ISA) || defined(__mips) 164 # define OM_TYPENAME typename 165 # define OM_OUT_OF_CLASS_TEMPLATE 1 166 # define OM_PARTIAL_SPECIALIZATION 1 167 # define OM_INCLUDE_TEMPLATES 0 168 # define OM_CC "MIPS" 169 # define OM_CC_VERSION _COMPILER_VERSION 172 # error "You're using an unsupported compiler!" 176 #endif // OPENMESH_COMPILER_H defined