core_setup_message.cpp 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. ///////////////////////////////////////////////////////////////////////////////////////////////////
  2. // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
  3. ///////////////////////////////////////////////////////////////////////////////////////////////////
  4. // Created : 2011-05-31
  5. // Updated : 2011-05-31
  6. // Licence : This source is under MIT License
  7. // File : test/core/setup_message.cpp
  8. ///////////////////////////////////////////////////////////////////////////////////////////////////
  9. #define GLM_MESSAGES
  10. #include <glm/glm.hpp>
  11. #include <iostream>
  12. int test_compiler()
  13. {
  14. int Error(0);
  15. if(GLM_COMPILER & GLM_COMPILER_VC)
  16. {
  17. std::cout << "GLM_COMPILER_VC" << std::endl;
  18. switch(GLM_COMPILER)
  19. {
  20. case GLM_COMPILER_VC2:
  21. std::cout << "GLM_COMPILER_VC2" << std::endl;
  22. break;
  23. case GLM_COMPILER_VC4:
  24. std::cout << "GLM_COMPILER_VC4" << std::endl;
  25. break;
  26. case GLM_COMPILER_VC5:
  27. std::cout << "GLM_COMPILER_VC5" << std::endl;
  28. break;
  29. case GLM_COMPILER_VC6:
  30. std::cout << "GLM_COMPILER_VC6" << std::endl;
  31. break;
  32. case GLM_COMPILER_VC2002:
  33. std::cout << "GLM_COMPILER_VC2002" << std::endl;
  34. break;
  35. case GLM_COMPILER_VC2003:
  36. std::cout << "GLM_COMPILER_VC2003" << std::endl;
  37. break;
  38. case GLM_COMPILER_VC2005:
  39. std::cout << "GLM_COMPILER_VC2005" << std::endl;
  40. break;
  41. case GLM_COMPILER_VC2008:
  42. std::cout << "GLM_COMPILER_VC2008" << std::endl;
  43. break;
  44. case GLM_COMPILER_VC2010:
  45. std::cout << "GLM_COMPILER_VC2010" << std::endl;
  46. break;
  47. case GLM_COMPILER_VC2012:
  48. std::cout << "GLM_COMPILER_VC2012" << std::endl;
  49. break;
  50. default:
  51. std::cout << "Visual C++ version not detected" << std::endl;
  52. Error += 1;
  53. break;
  54. }
  55. }
  56. else if(GLM_COMPILER & GLM_COMPILER_GCC)
  57. {
  58. std::cout << "GLM_COMPILER_GCC" << std::endl;
  59. switch(GLM_COMPILER)
  60. {
  61. case GLM_COMPILER_GCC30:
  62. std::cout << "GLM_COMPILER_GCC30" << std::endl;
  63. break;
  64. case GLM_COMPILER_GCC31:
  65. std::cout << "GLM_COMPILER_GCC31" << std::endl;
  66. break;
  67. case GLM_COMPILER_GCC32:
  68. std::cout << "GLM_COMPILER_GCC32" << std::endl;
  69. break;
  70. case GLM_COMPILER_GCC33:
  71. std::cout << "GLM_COMPILER_GCC33" << std::endl;
  72. break;
  73. case GLM_COMPILER_GCC34:
  74. std::cout << "GLM_COMPILER_GCC34" << std::endl;
  75. break;
  76. case GLM_COMPILER_GCC35:
  77. std::cout << "GLM_COMPILER_GCC35" << std::endl;
  78. break;
  79. case GLM_COMPILER_GCC40:
  80. std::cout << "GLM_COMPILER_GCC40" << std::endl;
  81. break;
  82. case GLM_COMPILER_GCC41:
  83. std::cout << "GLM_COMPILER_GCC41" << std::endl;
  84. break;
  85. case GLM_COMPILER_GCC42:
  86. std::cout << "GLM_COMPILER_GCC42" << std::endl;
  87. break;
  88. case GLM_COMPILER_GCC43:
  89. std::cout << "GLM_COMPILER_GCC43" << std::endl;
  90. break;
  91. case GLM_COMPILER_GCC44:
  92. std::cout << "GLM_COMPILER_GCC44" << std::endl;
  93. break;
  94. case GLM_COMPILER_GCC45:
  95. std::cout << "GLM_COMPILER_GCC45" << std::endl;
  96. break;
  97. case GLM_COMPILER_GCC46:
  98. std::cout << "GLM_COMPILER_GCC46" << std::endl;
  99. break;
  100. case GLM_COMPILER_GCC47:
  101. std::cout << "GLM_COMPILER_GCC47" << std::endl;
  102. break;
  103. case GLM_COMPILER_GCC48:
  104. std::cout << "GLM_COMPILER_GCC48" << std::endl;
  105. break;
  106. default:
  107. std::cout << "GCC version not detected" << std::endl;
  108. Error += 1;
  109. break;
  110. }
  111. }
  112. else if(GLM_COMPILER & GLM_COMPILER_BC)
  113. {
  114. std::cout << "GLM_COMPILER_BC" << std::endl;
  115. switch(GLM_COMPILER)
  116. {
  117. case GLM_COMPILER_BCB4:
  118. std::cout << "GLM_COMPILER_BCB4" << std::endl;
  119. break;
  120. case GLM_COMPILER_BCB5:
  121. std::cout << "GLM_COMPILER_BCB5" << std::endl;
  122. break;
  123. case GLM_COMPILER_BCB6:
  124. std::cout << "GLM_COMPILER_BCB6" << std::endl;
  125. break;
  126. case GLM_COMPILER_BCB2009:
  127. std::cout << "GLM_COMPILER_BCB2009" << std::endl;
  128. break;
  129. default:
  130. std::cout << "Borland C++ version not detected" << std::endl;
  131. Error += 1;
  132. break;
  133. }
  134. }
  135. else if(GLM_COMPILER & GLM_COMPILER_CODEWARRIOR)
  136. {
  137. std::cout << "GLM_COMPILER_CODEWARRIOR" << std::endl;
  138. }
  139. else if(GLM_COMPILER & GLM_COMPILER_CUDA)
  140. {
  141. std::cout << "GLM_COMPILER_CUDA" << std::endl;
  142. }
  143. else if(GLM_COMPILER & GLM_COMPILER_CLANG)
  144. {
  145. std::cout << "GLM_COMPILER_CLANG " << __clang_major__ << "." << __clang_minor__ << std::endl;
  146. switch(GLM_COMPILER)
  147. {
  148. case GLM_COMPILER_CLANG26:
  149. std::cout << "GLM_COMPILER_CLANG26" << std::endl;
  150. break;
  151. case GLM_COMPILER_CLANG27:
  152. std::cout << "GLM_COMPILER_CLANG27" << std::endl;
  153. break;
  154. case GLM_COMPILER_CLANG28:
  155. std::cout << "GLM_COMPILER_CLANG28" << std::endl;
  156. break;
  157. case GLM_COMPILER_CLANG29:
  158. std::cout << "GLM_COMPILER_CLANG29" << std::endl;
  159. break;
  160. case GLM_COMPILER_CLANG30:
  161. std::cout << "GLM_COMPILER_CLANG30" << std::endl;
  162. break;
  163. case GLM_COMPILER_CLANG31:
  164. std::cout << "GLM_COMPILER_CLANG31" << std::endl;
  165. break;
  166. case GLM_COMPILER_CLANG32:
  167. std::cout << "GLM_COMPILER_CLANG32" << std::endl;
  168. break;
  169. case GLM_COMPILER_CLANG33:
  170. std::cout << "GLM_COMPILER_CLANG33" << std::endl;
  171. break;
  172. case GLM_COMPILER_CLANG40:
  173. std::cout << "GLM_COMPILER_CLANG40" << std::endl;
  174. break;
  175. default:
  176. std::cout << "Clang version not detected" << std::endl;
  177. break;
  178. }
  179. }
  180. else if(GLM_COMPILER & GLM_COMPILER_LLVM_GCC)
  181. {
  182. std::cout << "GLM_COMPILER_LLVM_GCC" << std::endl;
  183. }
  184. else if(GLM_COMPILER & GLM_COMPILER_INTEL)
  185. {
  186. std::cout << "GLM_COMPILER_INTEL" << std::endl;
  187. switch(GLM_COMPILER)
  188. {
  189. case GLM_COMPILER_INTEL9:
  190. std::cout << "GLM_COMPILER_INTEL9" << std::endl;
  191. break;
  192. case GLM_COMPILER_INTEL10_0:
  193. std::cout << "GLM_COMPILER_INTEL10_0" << std::endl;
  194. break;
  195. case GLM_COMPILER_INTEL10_1:
  196. std::cout << "GLM_COMPILER_INTEL10_1" << std::endl;
  197. break;
  198. case GLM_COMPILER_INTEL11_0:
  199. std::cout << "GLM_COMPILER_INTEL11_0" << std::endl;
  200. break;
  201. case GLM_COMPILER_INTEL11_1:
  202. std::cout << "GLM_COMPILER_INTEL11_1" << std::endl;
  203. break;
  204. case GLM_COMPILER_INTEL12_1:
  205. std::cout << "GLM_COMPILER_INTEL12_1" << std::endl;
  206. break;
  207. case GLM_COMPILER_INTEL13_0:
  208. std::cout << "GLM_COMPILER_INTEL13_0" << std::endl;
  209. break;
  210. default:
  211. std::cout << "Intel compiler version not detected" << std::endl;
  212. Error += 1;
  213. break;
  214. }
  215. }
  216. else
  217. {
  218. std::cout << "Undetected compiler" << std::endl;
  219. Error += 1;
  220. }
  221. return Error;
  222. }
  223. int test_model()
  224. {
  225. int Error = 0;
  226. Error += ((sizeof(void*) == 4) && (GLM_MODEL == GLM_MODEL_32)) || ((sizeof(void*) == 8) && (GLM_MODEL == GLM_MODEL_64)) ? 0 : 1;
  227. if(GLM_MODEL == GLM_MODEL_32)
  228. std::cout << "GLM_MODEL_32" << std::endl;
  229. else if(GLM_MODEL == GLM_MODEL_64)
  230. std::cout << "GLM_MODEL_64" << std::endl;
  231. return Error;
  232. }
  233. int test_operators()
  234. {
  235. glm::vec3 A(1.0f);
  236. glm::vec3 B(1.0f);
  237. bool R = A != B;
  238. bool S = A == B;
  239. return (S && !R) ? 0 : 1;
  240. }
  241. int main()
  242. {
  243. int Error = 0;
  244. Error += test_compiler();
  245. Error += test_model();
  246. Error += test_operators();
  247. return Error;
  248. }