45 #ifndef OPENMESH_COMPILER_H 46 #define OPENMESH_COMPILER_H 50 #if defined(ACGMAKE_STATIC_BUILD) 51 # define OM_STATIC_BUILD 1 56 #if defined(_DEBUG) || defined(DEBUG) 63 #if defined(_MSC_VER) && \ 64 ( defined(__ICL) || defined(__INTEL_COMPILER) || defined(__ICC) ) 65 # if !defined(__INTEL_COMPILER) 66 # define __INTEL_COMPILER __ICL 68 # define OM_USE_INTEL_COMPILER 1 76 #if defined(_MSC_VER) && !defined(OM_USE_INTEL_COMPILER) 77 # if (_MSC_VER == 1300) 80 # define OM_OUT_OF_CLASS_TEMPLATE 0 81 # define OM_PARTIAL_SPECIALIZATION 0 82 # define OM_INCLUDE_TEMPLATES 1 83 # elif (_MSC_VER == 1310) 86 # define OM_OUT_OF_CLASS_TEMPLATE 1 87 # define OM_PARTIAL_SPECIALIZATION 1 88 # define OM_INCLUDE_TEMPLATES 1 89 # elif (_MSC_VER >= 1400) // settings for .NET 2005 (NOTE: not fully tested) 91 # define OM_OUT_OF_CLASS_TEMPLATE 1 92 # define OM_PARTIAL_SPECIALIZATION 1 93 # define OM_INCLUDE_TEMPLATES 1 95 # error "Version 7 (.NET 2002) or higher of the MS VC++ is required!" 98 # define OM_STATIC_BUILD 1 100 # define OM_REENTRANT 1 102 # define OM_CC "MSVC++" 103 # define OM_CC_VERSION _MSC_VER 106 # if defined(__cplusplus) && !defined(_CPPRTTI) 107 # error "Enable Runtime Type Information (Compiler Option /GR)!" 109 # if !defined(_USE_MATH_DEFINES) 110 # error "You have to define _USE_MATH_DEFINES in the compiler settings!" 113 #elif defined(__BORLANDC__) 114 # error "Borland Compiler are not supported yet!" 116 #elif defined(__GNUC__) && !defined(__ICC) 118 # define OM_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 ) 119 # define OM_GCC_MAJOR __GNUC__ 120 # define OM_GCC_MINOR __GNUC_MINOR__ 121 # if (OM_GCC_VERSION >= 30200) 122 # define OM_TYPENAME typename 123 # define OM_OUT_OF_CLASS_TEMPLATE 1 124 # define OM_PARTIAL_SPECIALIZATION 1 125 # define OM_INCLUDE_TEMPLATES 1 127 # error "Version 3.2.0 or better of the GNU Compiler is required!" 129 # if defined(_REENTRANT) 130 # define OM_REENTRANT 1 133 # define OM_CC_VERSION OM_GCC_VERSION 135 #elif defined(__ICC) || defined(__INTEL_COMPILER) 137 # define OM_TYPENAME typename 138 # define OM_OUT_OF_CLASS_TEMPLATE 1 139 # define OM_PARTIAL_SPECIALIZATION 1 140 # define OM_INCLUDE_TEMPLATES 1 141 # if defined(_REENTRANT) || defined(_MT) 142 # define OM_REENTRANT 1 145 # define OM_CC_VERSION __INTEL_COMPILER 147 # if defined(_MSC_VER) || defined(WIN32) 148 # define OM_STATIC_BUILD 1 151 #elif defined(__MIPS_ISA) || defined(__mips) 159 # define OM_TYPENAME typename 160 # define OM_OUT_OF_CLASS_TEMPLATE 1 161 # define OM_PARTIAL_SPECIALIZATION 1 162 # define OM_INCLUDE_TEMPLATES 0 163 # define OM_CC "MIPS" 164 # define OM_CC_VERSION _COMPILER_VERSION 167 # error "You're using an unsupported compiler!" 171 #endif // OPENMESH_COMPILER_H defined