core_setup_message.cpp 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. #include <glm/vec3.hpp>
  2. #include <cstdio>
  3. int test_compiler()
  4. {
  5. int Error(0);
  6. if(GLM_COMPILER & GLM_COMPILER_VC)
  7. {
  8. switch(GLM_COMPILER)
  9. {
  10. case GLM_COMPILER_VC12:
  11. std::printf("Visual C++ 12 - 2013\n");
  12. break;
  13. case GLM_COMPILER_VC14:
  14. std::printf("Visual C++ 14 - 2015\n");
  15. break;
  16. case GLM_COMPILER_VC15:
  17. std::printf("Visual C++ 15 - 2017\n");
  18. break;
  19. case GLM_COMPILER_VC15_3:
  20. std::printf("Visual C++ 15.3 - 2017\n");
  21. break;
  22. case GLM_COMPILER_VC15_5:
  23. std::printf("Visual C++ 15.5 - 2017\n");
  24. break;
  25. case GLM_COMPILER_VC15_6:
  26. std::printf("Visual C++ 15.6 - 2017\n");
  27. break;
  28. case GLM_COMPILER_VC15_7:
  29. std::printf("Visual C++ 15.7 - 2017\n");
  30. break;
  31. default:
  32. std::printf("Visual C++ version not detected\n");
  33. Error += 1;
  34. break;
  35. }
  36. }
  37. else if(GLM_COMPILER & GLM_COMPILER_GCC)
  38. {
  39. switch(GLM_COMPILER)
  40. {
  41. case GLM_COMPILER_GCC46:
  42. std::printf("GCC 4.6\n");
  43. break;
  44. case GLM_COMPILER_GCC47:
  45. std::printf("GCC 4.7\n");
  46. break;
  47. case GLM_COMPILER_GCC48:
  48. std::printf("GCC 4.8\n");
  49. break;
  50. case GLM_COMPILER_GCC49:
  51. std::printf("GCC 4.9\n");
  52. break;
  53. case GLM_COMPILER_GCC5:
  54. std::printf("GCC 5\n");
  55. break;
  56. case GLM_COMPILER_GCC6:
  57. std::printf("GCC 6\n");
  58. break;
  59. case GLM_COMPILER_GCC7:
  60. std::printf("GCC 7\n");
  61. break;
  62. case GLM_COMPILER_GCC8:
  63. std::printf("GCC 8\n");
  64. break;
  65. default:
  66. std::printf("GCC version not detected\n");
  67. Error += 1;
  68. break;
  69. }
  70. }
  71. else if(GLM_COMPILER & GLM_COMPILER_CUDA)
  72. {
  73. std::printf("CUDA\n");
  74. }
  75. else if(GLM_COMPILER & GLM_COMPILER_CLANG)
  76. {
  77. switch(GLM_COMPILER)
  78. {
  79. case GLM_COMPILER_CLANG34:
  80. std::printf("Clang 3.4\n");
  81. break;
  82. case GLM_COMPILER_CLANG35:
  83. std::printf("Clang 3.5\n");
  84. break;
  85. case GLM_COMPILER_CLANG36:
  86. std::printf("Clang 3.6\n");
  87. break;
  88. case GLM_COMPILER_CLANG37:
  89. std::printf("Clang 3.7\n");
  90. break;
  91. case GLM_COMPILER_CLANG38:
  92. std::printf("Clang 3.8\n");
  93. break;
  94. case GLM_COMPILER_CLANG39:
  95. std::printf("Clang 3.9\n");
  96. break;
  97. case GLM_COMPILER_CLANG40:
  98. std::printf("Clang 4.0\n");
  99. break;
  100. case GLM_COMPILER_CLANG41:
  101. std::printf("Clang 4.1\n");
  102. break;
  103. case GLM_COMPILER_CLANG42:
  104. std::printf("Clang 4.2\n");
  105. break;
  106. default:
  107. std::printf("LLVM version not detected\n");
  108. break;
  109. }
  110. }
  111. else if(GLM_COMPILER & GLM_COMPILER_INTEL)
  112. {
  113. switch(GLM_COMPILER)
  114. {
  115. case GLM_COMPILER_INTEL14:
  116. std::printf("ICC 14 - 2013 SP1\n");
  117. break;
  118. case GLM_COMPILER_INTEL15:
  119. std::printf("ICC 15 - 2015\n");
  120. break;
  121. case GLM_COMPILER_INTEL16:
  122. std::printf("ICC 16 - 2017\n");
  123. break;
  124. case GLM_COMPILER_INTEL17:
  125. std::printf("ICC 17 - 20XX\n");
  126. break;
  127. default:
  128. std::printf("Intel compiler version not detected\n");
  129. Error += 1;
  130. break;
  131. }
  132. }
  133. else
  134. {
  135. std::printf("Undetected compiler\n");
  136. Error += 1;
  137. }
  138. return Error;
  139. }
  140. int test_model()
  141. {
  142. int Error = 0;
  143. Error += ((sizeof(void*) == 4) && (GLM_MODEL == GLM_MODEL_32)) || ((sizeof(void*) == 8) && (GLM_MODEL == GLM_MODEL_64)) ? 0 : 1;
  144. if(GLM_MODEL == GLM_MODEL_32)
  145. std::printf("GLM_MODEL_32\n");
  146. else if(GLM_MODEL == GLM_MODEL_64)
  147. std::printf("GLM_MODEL_64\n");
  148. return Error;
  149. }
  150. int test_instruction_set()
  151. {
  152. int Error = 0;
  153. std::printf("GLM_ARCH: ");
  154. if(GLM_ARCH & GLM_ARCH_ARM_BIT)
  155. std::printf("ARM ");
  156. if(GLM_ARCH & GLM_ARCH_NEON_BIT)
  157. std::printf("NEON ");
  158. if(GLM_ARCH & GLM_ARCH_AVX2)
  159. std::printf("AVX2 ");
  160. if(GLM_ARCH & GLM_ARCH_AVX)
  161. std::printf("AVX ");
  162. if(GLM_ARCH & GLM_ARCH_SSE42_BIT)
  163. std::printf("SSE4.2 ");
  164. if(GLM_ARCH & GLM_ARCH_SSE41_BIT)
  165. std::printf("SSE4.1 ");
  166. if(GLM_ARCH & GLM_ARCH_SSSE3_BIT)
  167. std::printf("SSSE3 ");
  168. if(GLM_ARCH & GLM_ARCH_SSE3_BIT)
  169. std::printf("SSE3 ");
  170. if(GLM_ARCH & GLM_ARCH_SSE2_BIT)
  171. std::printf("SSE2 ");
  172. std::printf("\n");
  173. return Error;
  174. }
  175. int test_cpp_version()
  176. {
  177. std::printf("__cplusplus: %d\n", static_cast<int>(__cplusplus));
  178. return 0;
  179. }
  180. int test_operators()
  181. {
  182. glm::ivec3 A(1.0f);
  183. glm::ivec3 B(1.0f);
  184. bool R = A != B;
  185. bool S = A == B;
  186. return (S && !R) ? 0 : 1;
  187. }
  188. int main()
  189. {
  190. int Error = 0;
  191. Error += test_cpp_version();
  192. Error += test_compiler();
  193. Error += test_model();
  194. Error += test_instruction_set();
  195. Error += test_operators();
  196. return Error;
  197. }