core_setup_message.cpp 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. ///////////////////////////////////////////////////////////////////////////////////////////////////
  2. // OpenGL Mathematics Copyright (c) 2005 - 2013 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. case GLM_COMPILER_VC2013:
  51. std::cout << "GLM_COMPILER_VC2013" << std::endl;
  52. break;
  53. default:
  54. std::cout << "Visual C++ version not detected" << std::endl;
  55. Error += 1;
  56. break;
  57. }
  58. }
  59. else if(GLM_COMPILER & GLM_COMPILER_GCC)
  60. {
  61. std::cout << "GLM_COMPILER_GCC" << std::endl;
  62. switch(GLM_COMPILER)
  63. {
  64. case GLM_COMPILER_GCC30:
  65. std::cout << "GLM_COMPILER_GCC30" << std::endl;
  66. break;
  67. case GLM_COMPILER_GCC31:
  68. std::cout << "GLM_COMPILER_GCC31" << std::endl;
  69. break;
  70. case GLM_COMPILER_GCC32:
  71. std::cout << "GLM_COMPILER_GCC32" << std::endl;
  72. break;
  73. case GLM_COMPILER_GCC33:
  74. std::cout << "GLM_COMPILER_GCC33" << std::endl;
  75. break;
  76. case GLM_COMPILER_GCC34:
  77. std::cout << "GLM_COMPILER_GCC34" << std::endl;
  78. break;
  79. case GLM_COMPILER_GCC35:
  80. std::cout << "GLM_COMPILER_GCC35" << std::endl;
  81. break;
  82. case GLM_COMPILER_GCC40:
  83. std::cout << "GLM_COMPILER_GCC40" << std::endl;
  84. break;
  85. case GLM_COMPILER_GCC41:
  86. std::cout << "GLM_COMPILER_GCC41" << std::endl;
  87. break;
  88. case GLM_COMPILER_GCC42:
  89. std::cout << "GLM_COMPILER_GCC42" << std::endl;
  90. break;
  91. case GLM_COMPILER_GCC43:
  92. std::cout << "GLM_COMPILER_GCC43" << std::endl;
  93. break;
  94. case GLM_COMPILER_GCC44:
  95. std::cout << "GLM_COMPILER_GCC44" << std::endl;
  96. break;
  97. case GLM_COMPILER_GCC45:
  98. std::cout << "GLM_COMPILER_GCC45" << std::endl;
  99. break;
  100. case GLM_COMPILER_GCC46:
  101. std::cout << "GLM_COMPILER_GCC46" << std::endl;
  102. break;
  103. case GLM_COMPILER_GCC47:
  104. std::cout << "GLM_COMPILER_GCC47" << std::endl;
  105. break;
  106. case GLM_COMPILER_GCC48:
  107. std::cout << "GLM_COMPILER_GCC48" << std::endl;
  108. break;
  109. case GLM_COMPILER_GCC49:
  110. std::cout << "GLM_COMPILER_GCC49" << std::endl;
  111. break;
  112. default:
  113. std::cout << "GCC version not detected" << std::endl;
  114. Error += 1;
  115. break;
  116. }
  117. }
  118. else if(GLM_COMPILER & GLM_COMPILER_BC)
  119. {
  120. std::cout << "GLM_COMPILER_BC" << std::endl;
  121. switch(GLM_COMPILER)
  122. {
  123. case GLM_COMPILER_BCB4:
  124. std::cout << "GLM_COMPILER_BCB4" << std::endl;
  125. break;
  126. case GLM_COMPILER_BCB5:
  127. std::cout << "GLM_COMPILER_BCB5" << std::endl;
  128. break;
  129. case GLM_COMPILER_BCB6:
  130. std::cout << "GLM_COMPILER_BCB6" << std::endl;
  131. break;
  132. case GLM_COMPILER_BCB2009:
  133. std::cout << "GLM_COMPILER_BCB2009" << std::endl;
  134. break;
  135. default:
  136. std::cout << "Borland C++ version not detected" << std::endl;
  137. Error += 1;
  138. break;
  139. }
  140. }
  141. else if(GLM_COMPILER & GLM_COMPILER_CODEWARRIOR)
  142. {
  143. std::cout << "GLM_COMPILER_CODEWARRIOR" << std::endl;
  144. }
  145. else if(GLM_COMPILER & GLM_COMPILER_CUDA)
  146. {
  147. std::cout << "GLM_COMPILER_CUDA" << std::endl;
  148. }
  149. else if(GLM_COMPILER & GLM_COMPILER_CLANG)
  150. {
  151. # ifdef __clang_major__
  152. std::cout << "GLM_COMPILER_CLANG " << __clang_major__ << "." << __clang_minor__ << std::endl;
  153. # endif
  154. switch(GLM_COMPILER)
  155. {
  156. case GLM_COMPILER_CLANG26:
  157. std::cout << "GLM_COMPILER_CLANG26" << std::endl;
  158. break;
  159. case GLM_COMPILER_CLANG27:
  160. std::cout << "GLM_COMPILER_CLANG27" << std::endl;
  161. break;
  162. case GLM_COMPILER_CLANG28:
  163. std::cout << "GLM_COMPILER_CLANG28" << std::endl;
  164. break;
  165. case GLM_COMPILER_CLANG29:
  166. std::cout << "GLM_COMPILER_CLANG29" << std::endl;
  167. break;
  168. case GLM_COMPILER_CLANG30:
  169. std::cout << "GLM_COMPILER_CLANG30" << std::endl;
  170. break;
  171. case GLM_COMPILER_CLANG31:
  172. std::cout << "GLM_COMPILER_CLANG31" << std::endl;
  173. break;
  174. case GLM_COMPILER_CLANG32:
  175. std::cout << "GLM_COMPILER_CLANG32" << std::endl;
  176. break;
  177. case GLM_COMPILER_CLANG33:
  178. std::cout << "GLM_COMPILER_CLANG33" << std::endl;
  179. break;
  180. case GLM_COMPILER_CLANG40:
  181. std::cout << "GLM_COMPILER_CLANG40" << std::endl;
  182. break;
  183. case GLM_COMPILER_CLANG41:
  184. std::cout << "GLM_COMPILER_CLANG41" << std::endl;
  185. break;
  186. case GLM_COMPILER_CLANG42:
  187. std::cout << "GLM_COMPILER_CLANG42" << std::endl;
  188. break;
  189. case GLM_COMPILER_CLANG43:
  190. std::cout << "GLM_COMPILER_CLANG43" << std::endl;
  191. break;
  192. default:
  193. std::cout << "Clang version not detected" << std::endl;
  194. break;
  195. }
  196. }
  197. else if(GLM_COMPILER & GLM_COMPILER_LLVM_GCC)
  198. {
  199. std::cout << "GLM_COMPILER_LLVM_GCC" << std::endl;
  200. }
  201. else if(GLM_COMPILER & GLM_COMPILER_INTEL)
  202. {
  203. std::cout << "GLM_COMPILER_INTEL" << std::endl;
  204. switch(GLM_COMPILER)
  205. {
  206. case GLM_COMPILER_INTEL9:
  207. std::cout << "GLM_COMPILER_INTEL9" << std::endl;
  208. break;
  209. case GLM_COMPILER_INTEL10_0:
  210. std::cout << "GLM_COMPILER_INTEL10_0" << std::endl;
  211. break;
  212. case GLM_COMPILER_INTEL10_1:
  213. std::cout << "GLM_COMPILER_INTEL10_1" << std::endl;
  214. break;
  215. case GLM_COMPILER_INTEL11_0:
  216. std::cout << "GLM_COMPILER_INTEL11_0" << std::endl;
  217. break;
  218. case GLM_COMPILER_INTEL11_1:
  219. std::cout << "GLM_COMPILER_INTEL11_1" << std::endl;
  220. break;
  221. case GLM_COMPILER_INTEL12_1:
  222. std::cout << "GLM_COMPILER_INTEL12_1" << std::endl;
  223. break;
  224. case GLM_COMPILER_INTEL13_0:
  225. std::cout << "GLM_COMPILER_INTEL13_0" << std::endl;
  226. break;
  227. default:
  228. std::cout << "Intel compiler version not detected" << std::endl;
  229. Error += 1;
  230. break;
  231. }
  232. }
  233. else
  234. {
  235. std::cout << "Undetected compiler" << std::endl;
  236. Error += 1;
  237. }
  238. return Error;
  239. }
  240. int test_model()
  241. {
  242. int Error = 0;
  243. Error += ((sizeof(void*) == 4) && (GLM_MODEL == GLM_MODEL_32)) || ((sizeof(void*) == 8) && (GLM_MODEL == GLM_MODEL_64)) ? 0 : 1;
  244. if(GLM_MODEL == GLM_MODEL_32)
  245. std::cout << "GLM_MODEL_32" << std::endl;
  246. else if(GLM_MODEL == GLM_MODEL_64)
  247. std::cout << "GLM_MODEL_64" << std::endl;
  248. return Error;
  249. }
  250. int test_operators()
  251. {
  252. glm::vec3 A(1.0f);
  253. glm::vec3 B(1.0f);
  254. bool R = A != B;
  255. bool S = A == B;
  256. return (S && !R) ? 0 : 1;
  257. }
  258. int main()
  259. {
  260. int Error = 0;
  261. Error += test_compiler();
  262. Error += test_model();
  263. Error += test_operators();
  264. return Error;
  265. }