From dd48b56e44d699a022c69155c8672caacafd9e8a Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Fri, 2 Dec 2016 01:14:36 +0100 Subject: [PATCH] Updated list of supported compilers --- glm/simd/platform.h | 119 +++++++------------------------ readme.md | 13 ++-- test/core/core_setup_message.cpp | 81 +++++---------------- 3 files changed, 52 insertions(+), 161 deletions(-) diff --git a/glm/simd/platform.h b/glm/simd/platform.h index 36abb068..bc4ccb22 100644 --- a/glm/simd/platform.h +++ b/glm/simd/platform.h @@ -77,58 +77,37 @@ // Intel #define GLM_COMPILER_INTEL 0x00100000 -#define GLM_COMPILER_INTEL12 0x00100010 -#define GLM_COMPILER_INTEL12_1 0x00100020 -#define GLM_COMPILER_INTEL13 0x00100030 #define GLM_COMPILER_INTEL14 0x00100040 #define GLM_COMPILER_INTEL15 0x00100050 #define GLM_COMPILER_INTEL16 0x00100060 +#define GLM_COMPILER_INTEL17 0x00100070 // Visual C++ defines #define GLM_COMPILER_VC 0x01000000 -#define GLM_COMPILER_VC10 0x01000090 -#define GLM_COMPILER_VC11 0x010000A0 #define GLM_COMPILER_VC12 0x010000B0 #define GLM_COMPILER_VC14 0x010000C0 #define GLM_COMPILER_VC15 0x010000D0 +#define GLM_COMPILER_VC16 0x010000E0 // GCC defines #define GLM_COMPILER_GCC 0x02000000 -#define GLM_COMPILER_GCC44 0x020000B0 -#define GLM_COMPILER_GCC45 0x020000C0 #define GLM_COMPILER_GCC46 0x020000D0 #define GLM_COMPILER_GCC47 0x020000E0 #define GLM_COMPILER_GCC48 0x020000F0 #define GLM_COMPILER_GCC49 0x02000100 -#define GLM_COMPILER_GCC50 0x02000200 -#define GLM_COMPILER_GCC51 0x02000300 -#define GLM_COMPILER_GCC52 0x02000400 -#define GLM_COMPILER_GCC53 0x02000500 -#define GLM_COMPILER_GCC54 0x02000600 -#define GLM_COMPILER_GCC60 0x02000700 -#define GLM_COMPILER_GCC61 0x02000800 -#define GLM_COMPILER_GCC62 0x02000900 -#define GLM_COMPILER_GCC70 0x02000A00 -#define GLM_COMPILER_GCC71 0x02000B00 -#define GLM_COMPILER_GCC72 0x02000C00 -#define GLM_COMPILER_GCC80 0x02000D00 +#define GLM_COMPILER_GCC5 0x02000200 +#define GLM_COMPILER_GCC6 0x02000300 +#define GLM_COMPILER_GCC7 0x02000400 +#define GLM_COMPILER_GCC8 0x02000500 // CUDA #define GLM_COMPILER_CUDA 0x10000000 -#define GLM_COMPILER_CUDA40 0x10000040 -#define GLM_COMPILER_CUDA41 0x10000050 -#define GLM_COMPILER_CUDA42 0x10000060 -#define GLM_COMPILER_CUDA50 0x10000070 -#define GLM_COMPILER_CUDA60 0x10000080 -#define GLM_COMPILER_CUDA65 0x10000090 #define GLM_COMPILER_CUDA70 0x100000A0 #define GLM_COMPILER_CUDA75 0x100000B0 #define GLM_COMPILER_CUDA80 0x100000C0 // Clang #define GLM_COMPILER_CLANG 0x20000000 -#define GLM_COMPILER_CLANG32 0x20000030 -#define GLM_COMPILER_CLANG33 0x20000040 #define GLM_COMPILER_CLANG34 0x20000050 #define GLM_COMPILER_CLANG35 0x20000060 #define GLM_COMPILER_CLANG36 0x20000070 @@ -148,20 +127,16 @@ # define GLM_COMPILER GLM_COMPILER_UNKNOWN #elif defined(__INTEL_COMPILER) -# if __INTEL_COMPILER == 1200 -# define GLM_COMPILER GLM_COMPILER_INTEL12 -# elif __INTEL_COMPILER == 1210 -# define GLM_COMPILER GLM_COMPILER_INTEL12_1 -# elif __INTEL_COMPILER == 1300 -# define GLM_COMPILER GLM_COMPILER_INTEL13 +# if (__clang_major__ < 1400) +# error "GLM requires ICC 2013 SP1 or newer" # elif __INTEL_COMPILER == 1400 # define GLM_COMPILER GLM_COMPILER_INTEL14 # elif __INTEL_COMPILER == 1500 # define GLM_COMPILER GLM_COMPILER_INTEL15 -# elif __INTEL_COMPILER >= 1600 +# elif __INTEL_COMPILER == 1600 # define GLM_COMPILER GLM_COMPILER_INTEL16 -# else -# define GLM_COMPILER GLM_COMPILER_INTEL +# elif __INTEL_COMPILER >= 1700 +# define GLM_COMPILER GLM_COMPILER_INTEL17 # endif // CUDA @@ -178,28 +153,18 @@ // Clang #elif defined(__clang__) # if GLM_PLATFORM & GLM_PLATFORM_APPLE -# if __clang_major__ == 5 && __clang_minor__ == 0 -# define GLM_COMPILER GLM_COMPILER_CLANG33 -# elif __clang_major__ == 5 && __clang_minor__ == 1 -# define GLM_COMPILER GLM_COMPILER_CLANG34 +# if (__clang_major__ < 6) +# error "GLM requires Clang 3.4 / Apple Clang 6.0 or higher" # elif __clang_major__ == 6 && __clang_minor__ == 0 # define GLM_COMPILER GLM_COMPILER_CLANG35 # elif __clang_major__ == 6 && __clang_minor__ >= 1 # define GLM_COMPILER GLM_COMPILER_CLANG36 # elif __clang_major__ >= 7 # define GLM_COMPILER GLM_COMPILER_CLANG37 -# else -# define GLM_COMPILER GLM_COMPILER_CLANG # endif # else -# if __clang_major__ == 3 && __clang_minor__ == 0 -# define GLM_COMPILER GLM_COMPILER_CLANG30 -# elif __clang_major__ == 3 && __clang_minor__ == 1 -# define GLM_COMPILER GLM_COMPILER_CLANG31 -# elif __clang_major__ == 3 && __clang_minor__ == 2 -# define GLM_COMPILER GLM_COMPILER_CLANG32 -# elif __clang_major__ == 3 && __clang_minor__ == 3 -# define GLM_COMPILER GLM_COMPILER_CLANG33 +# if ((__clang_major__ == 3) && (__clang_minor__ < 4)) || (__clang_major__ < 3) +# error "GLM requires Clang 3.4 or higher" # elif __clang_major__ == 3 && __clang_minor__ == 4 # define GLM_COMPILER GLM_COMPILER_CLANG34 # elif __clang_major__ == 3 && __clang_minor__ == 5 @@ -220,39 +185,25 @@ # define GLM_COMPILER GLM_COMPILER_CLANG42 # elif __clang_major__ >= 4 # define GLM_COMPILER GLM_COMPILER_CLANG42 -# else -# define GLM_COMPILER GLM_COMPILER_CLANG # endif # endif // Visual C++ #elif defined(_MSC_VER) -# if _MSC_VER < 1600 -# error "GLM requires Visual C++ 10 - 2010 or higher" -# elif _MSC_VER == 1600 -# define GLM_COMPILER GLM_COMPILER_VC11 -# elif _MSC_VER == 1700 -# define GLM_COMPILER GLM_COMPILER_VC11 +# if _MSC_VER < 1800 +# error "GLM requires Visual C++ 12 - 2013 or higher" # elif _MSC_VER == 1800 # define GLM_COMPILER GLM_COMPILER_VC12 # elif _MSC_VER == 1900 # define GLM_COMPILER GLM_COMPILER_VC14 # elif _MSC_VER >= 1910 # define GLM_COMPILER GLM_COMPILER_VC15 -# else//_MSC_VER -# define GLM_COMPILER GLM_COMPILER_VC # endif//_MSC_VER // G++ #elif defined(__GNUC__) || defined(__MINGW32__) -# if (__GNUC__ == 4) && (__GNUC_MINOR__ == 2) -# define GLM_COMPILER (GLM_COMPILER_GCC42) -# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 3) -# define GLM_COMPILER (GLM_COMPILER_GCC43) -# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 4) -# define GLM_COMPILER (GLM_COMPILER_GCC44) -# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 5) -# define GLM_COMPILER (GLM_COMPILER_GCC45) +# if ((__GNUC__ == 4) && (__GNUC_MINOR__ < 6)) || (__GNUC__ < 4) +# error "GLM requires GCC 4.7 or higher" # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 6) # define GLM_COMPILER (GLM_COMPILER_GCC46) # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 7) @@ -261,32 +212,14 @@ # define GLM_COMPILER (GLM_COMPILER_GCC48) # elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 9) # define GLM_COMPILER (GLM_COMPILER_GCC49) -# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 0) -# define GLM_COMPILER (GLM_COMPILER_GCC50) -# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 1) -# define GLM_COMPILER (GLM_COMPILER_GCC51) -# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 2) -# define GLM_COMPILER (GLM_COMPILER_GCC52) -# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 3) -# define GLM_COMPILER (GLM_COMPILER_GCC53) -# elif (__GNUC__ == 5) && (__GNUC_MINOR__ >= 4) -# define GLM_COMPILER (GLM_COMPILER_GCC54) -# elif (__GNUC__ == 6) && (__GNUC_MINOR__ == 0) -# define GLM_COMPILER (GLM_COMPILER_GCC60) -# elif (__GNUC__ == 6) && (__GNUC_MINOR__ == 1) -# define GLM_COMPILER (GLM_COMPILER_GCC61) -# elif (__GNUC__ == 6) && (__GNUC_MINOR__ >= 2) -# define GLM_COMPILER (GLM_COMPILER_GCC62) -# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 0) -# define GLM_COMPILER (GLM_COMPILER_GCC70) -# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 1) -# define GLM_COMPILER (GLM_COMPILER_GCC71) -# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 2) -# define GLM_COMPILER (GLM_COMPILER_GCC72) +# elif (__GNUC__ == 5) +# define GLM_COMPILER (GLM_COMPILER_GCC5) +# elif (__GNUC__ == 6) +# define GLM_COMPILER (GLM_COMPILER_GCC6) +# elif (__GNUC__ == 7) +# define GLM_COMPILER (GLM_COMPILER_GCC7) # elif (__GNUC__ >= 8) -# define GLM_COMPILER (GLM_COMPILER_GCC80) -# else -# define GLM_COMPILER (GLM_COMPILER_GCC) +# define GLM_COMPILER (GLM_COMPILER_GCC8) # endif #else diff --git a/readme.md b/readme.md index 20f53d29..3d435eac 100644 --- a/readme.md +++ b/readme.md @@ -9,13 +9,13 @@ This project isn't limited to *GLSL* features. An extension system, based on the This library works perfectly with *[OpenGL](https://www.opengl.org)* but it also ensures interoperability with other third party libraries and SDK. It is a good candidate for software rendering (raytracing / rasterisation), image processing, physic simulations and any development context that requires a simple and convenient mathematics library. *GLM* is written in C++98 but can take advantage of C++11 when supported by the compiler. It is a platform independent library with no dependence and it officially supports the following compilers: -- [Apple Clang 5.0](https://developer.apple.com/library/mac/documentation/CompilerTools/Conceptual/LLVMCompilerOverview/index.html) and higher -- [GCC](http://gcc.gnu.org/) 4.6 and higher +- [Apple Clang 6.0](https://developer.apple.com/library/mac/documentation/CompilerTools/Conceptual/LLVMCompilerOverview/index.html) and higher +- [GCC](http://gcc.gnu.org/) 4.7 and higher - [Intel C++ Composer](https://software.intel.com/en-us/intel-compilers) XE 2013 and higher -- [LLVM](http://llvm.org/) 3.2 and higher -- [Visual C++](http://www.visualstudio.com/) 2010 and higher +- [LLVM](http://llvm.org/) 3.4 and higher +- [Visual C++](http://www.visualstudio.com/) 2013 and higher - [CUDA](https://developer.nvidia.com/about-cuda) 7.0 and higher (experimental) -- Any conform C++98 or C++11 compiler +- Any C++11 compiler For more information about *GLM*, please have a look at the [manual](manual.md) and the [API reference documentation](http://glm.g-truc.net/0.9.8/api/index.html). The source code and the documentation are licensed under both the [Happy Bunny License (Modified MIT) or the MIT License](manual.md#section0). @@ -75,6 +75,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) - Fixed intersectRayTriangle #6 #### Deprecation: +- Requires Visual Studio 2013, GCC 4.7, Clang 3.4, Cuda 7, ICC 2013 or a C++11 compiler - Removed GLM_GTX_simd_vec4 extension - Removed GLM_GTX_simd_mat4 extension - Removed GLM_GTX_simd_quat extension @@ -408,6 +409,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) - Fixed float comparison warnings #270 #### Deprecation: +- Requires Visual Studio 2010, GCC 4.2, Apple Clang 4.0, LLVM 3.0, Cuda 4, ICC 2013 or a C++98 compiler - Removed degrees for function parameters - Removed GLM_FORCE_RADIANS, active by default - Removed VC 2005 / 8 and 2008 / 9 support @@ -602,6 +604,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) - Added GLM_FORCE_RADIANS so that all functions takes radians for arguments - Fixed detection of Clang and LLVM GCC on MacOS X - Added debugger visualizers for Visual C++ 2012 +- Requires Visual Studio 2005, GCC 4.2, Clang 2.6, Cuda 3, ICC 2013 or a C++98 compiler --- ### [GLM 0.9.3.4](https://github.com/g-truc/glm/releases/tag/0.9.3.4) - 2012-06-30 diff --git a/test/core/core_setup_message.cpp b/test/core/core_setup_message.cpp index 1e6a5d06..23f8f3b8 100644 --- a/test/core/core_setup_message.cpp +++ b/test/core/core_setup_message.cpp @@ -10,12 +10,6 @@ int test_compiler() { switch(GLM_COMPILER) { - case GLM_COMPILER_VC10: - std::printf("Visual C++ 10 - 2010\n"); - break; - case GLM_COMPILER_VC11: - std::printf("Visual C++ 11 - 2012\n"); - break; case GLM_COMPILER_VC12: std::printf("Visual C++ 12 - 2013\n"); break; @@ -23,7 +17,10 @@ int test_compiler() std::printf("Visual C++ 14 - 2015\n"); break; case GLM_COMPILER_VC15: - std::printf("Visual C++ 15 - 201X\n"); + std::printf("Visual C++ 15 - 2017\n"); + break; + case GLM_COMPILER_VC16: + std::printf("Visual C++ 16 - 20XX\n"); break; default: std::printf("Visual C++ version not detected\n"); @@ -35,12 +32,6 @@ int test_compiler() { switch(GLM_COMPILER) { - case GLM_COMPILER_GCC44: - std::printf("GCC 4.4\n"); - break; - case GLM_COMPILER_GCC45: - std::printf("GCC 4.5\n"); - break; case GLM_COMPILER_GCC46: std::printf("GCC 4.6\n"); break; @@ -53,41 +44,17 @@ int test_compiler() case GLM_COMPILER_GCC49: std::printf("GCC 4.9\n"); break; - case GLM_COMPILER_GCC50: - std::printf("GCC 5.0\n"); - break; - case GLM_COMPILER_GCC51: - std::printf("GCC 5.1\n"); - break; - case GLM_COMPILER_GCC52: - std::printf("GCC 5.2\n"); - break; - case GLM_COMPILER_GCC53: - std::printf("GCC 5.3\n"); - break; - case GLM_COMPILER_GCC54: - std::printf("GCC 5.4\n"); - break; - case GLM_COMPILER_GCC60: - std::printf("GCC 6.0\n"); + case GLM_COMPILER_GCC5: + std::printf("GCC 5\n"); break; - case GLM_COMPILER_GCC61: - std::printf("GCC 6.1\n"); + case GLM_COMPILER_GCC6: + std::printf("GCC 6\n"); break; - case GLM_COMPILER_GCC62: - std::printf("GCC 6.2\n"); + case GLM_COMPILER_GCC7: + std::printf("GCC 7\n"); break; - case GLM_COMPILER_GCC70: - std::printf("GCC 7.0\n"); - break; - case GLM_COMPILER_GCC71: - std::printf("GCC 7.1\n"); - break; - case GLM_COMPILER_GCC72: - std::printf("GCC 7.2\n"); - break; - case GLM_COMPILER_GCC80: - std::printf("GCC 8.0\n"); + case GLM_COMPILER_GCC8: + std::printf("GCC 8\n"); break; default: std::printf("GCC version not detected\n"); @@ -103,12 +70,6 @@ int test_compiler() { switch(GLM_COMPILER) { - case GLM_COMPILER_CLANG32: - std::printf("Clang 3.2\n"); - break; - case GLM_COMPILER_CLANG33: - std::printf("Clang 3.3\n"); - break; case GLM_COMPILER_CLANG34: std::printf("Clang 3.4\n"); break; @@ -145,23 +106,17 @@ int test_compiler() { switch(GLM_COMPILER) { - case GLM_COMPILER_INTEL12: - std::printf("ICC 12\n"); - break; - case GLM_COMPILER_INTEL12_1: - std::printf("ICC 12.1\n"); - break; - case GLM_COMPILER_INTEL13: - std::printf("ICC 13\n"); - break; case GLM_COMPILER_INTEL14: - std::printf("ICC 14\n"); + std::printf("ICC 14 - 2013 SP1\n"); break; case GLM_COMPILER_INTEL15: - std::printf("ICC 15\n"); + std::printf("ICC 15 - 2015\n"); break; case GLM_COMPILER_INTEL16: - std::printf("ICC 16\n"); + std::printf("ICC 16 - 2017\n"); + break; + case GLM_COMPILER_INTEL17: + std::printf("ICC 17 - 20XX\n"); break; default: std::printf("Intel compiler version not detected\n");