Improved compiler detection

master
Christophe Riccio ago%!(EXTRA string=14 years)
parent 98567e5113
commit c99e2f523f
  1. 2
      doc/pages.doxy
  2. 6
      doc/src/data.xml
  3. 30
      glm/core/setup.hpp
  4. 1
      readme.txt

@ -10,7 +10,7 @@
This library works perfectly with OpenGL 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 context that requires a simple and convenient mathematics library. This library works perfectly with OpenGL 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 context that requires a simple and convenient mathematics library.
GLM is written as a platform independent library with no dependence and officially supports the following compilers: GLM is written as a platform independent library with no dependence and officially supports the following compilers:
1. Clang 2.0 and higher 1. Clang 2.0 and higher
2. CUDA 3.0 and higher 2. CUDA 3.0 and higher
3. GCC 3.4 and higher 3. GCC 3.4 and higher
4. LLVM 2.3 through GCC 4.2 front-end and higher 4. LLVM 2.3 through GCC 4.2 front-end and higher

@ -1535,7 +1535,11 @@
This library works perfectly with OpenGL but it also ensures interoperability with other third party libraries and SDKs. It is a good candidate for software rendering (Raytracing / Rasterisation), image processing, physic simulations and any context that requires a simple and convenient mathematics library. This library works perfectly with OpenGL but it also ensures interoperability with other third party libraries and SDKs. It is a good candidate for software rendering (Raytracing / Rasterisation), image processing, physic simulations and any context that requires a simple and convenient mathematics library.
</paragraph> </paragraph>
<list name="GLM is written as a platform independent library with no dependence and officially supports the following compilers:"> <list name="GLM is written as a platform independent library with no dependence and officially supports the following compilers:">
<list-element><link href="http://http://gcc.gnu.org/">GCC</link> 3.4 and higher</list-element> <list-element><link href="http://clang.llvm.org">Clang</link> 2.0 and higher</list-element>
<list-element>
<link href="http://developer.nvidia.com/category/zone/cuda-zone">CUDA</link> 3.0 and higher
</list-element>
<list-element><link href="http://gcc.gnu.org/">GCC</link> 3.4 and higher</list-element>
<list-element><link href="http://llvm.org/">LLVM</link> 2.3 through GCC 4.2 front-end and higher</list-element> <list-element><link href="http://llvm.org/">LLVM</link> 2.3 through GCC 4.2 front-end and higher</list-element>
<list-element><link href="http://msdn.microsoft.com/en-us/visualc/default">Visual C++</link> 2005 and higher</list-element> <list-element><link href="http://msdn.microsoft.com/en-us/visualc/default">Visual C++</link> 2005 and higher</list-element>
<list-element>Any C++ compiler following C++98 norm</list-element> <list-element>Any C++ compiler following C++98 norm</list-element>

@ -24,7 +24,7 @@
// Compiler // Compiler
// User defines: GLM_FORCE_COMPILER_UNKNOWN // User defines: GLM_FORCE_COMPILER_UNKNOWN
// TODO ? __llvm__ __clang__ // TODO ? __llvm__
#define GLM_COMPILER_UNKNOWN 0x00000000 #define GLM_COMPILER_UNKNOWN 0x00000000
@ -82,6 +82,16 @@
#define GLM_COMPILER_CUDA32 0x10000030 #define GLM_COMPILER_CUDA32 0x10000030
#define GLM_COMPILER_CUDA40 0x10000040 #define GLM_COMPILER_CUDA40 0x10000040
// Clang
#define GLM_COMPILER_CLANG 0x20000000
#define GLM_COMPILER_CLANG26 0x20000010
#define GLM_COMPILER_CLANG27 0x20000020
#define GLM_COMPILER_CLANG28 0x20000030
#define GLM_COMPILER_CLANG29 0x20000040
// LLVM GCC
#define GLM_COMPILER_LLVM_GCC 0x40000000
// Build model // Build model
#define GLM_MODEL_32 0x00000010 #define GLM_MODEL_32 0x00000010
#define GLM_MODEL_64 0x00000020 #define GLM_MODEL_64 0x00000020
@ -120,6 +130,20 @@
# define GLM_COMPILER GLM_COMPILER_VC # define GLM_COMPILER GLM_COMPILER_VC
# endif//_MSC_VER # endif//_MSC_VER
#elif defined(__clang__)
# if (__clang_major__ == 2) && (__clang_minor__ == 6)
# define GLM_COMPILER GLM_COMPILER_CLANG26
# elif (__clang_major__ == 2) && (__clang_minor__ == 7)
# define GLM_COMPILER GLM_COMPILER_CLANG27
# elif (__clang_major__ == 2) && (__clang_minor__ == 8)
# define GLM_COMPILER GLM_COMPILER_CLANG28
# elif (__clang_major__ == 2) && (__clang_minor__ == 9)
# define GLM_COMPILER GLM_COMPILER_CLANG29
# endif
#elif defined(__llvm__)
# define GLM_COMPILER GLM_COMPILER_LLVM_GCC
// G++ // G++
#elif defined(__GNUC__) #elif defined(__GNUC__)
# if (__GNUC__ == 3) && (__GNUC_MINOR__ == 2) # if (__GNUC__ == 3) && (__GNUC_MINOR__ == 2)
@ -189,6 +213,10 @@
# pragma message("GLM: CUDA compiler detected") # pragma message("GLM: CUDA compiler detected")
# elif(GLM_COMPILER & GLM_COMPILER_VC) # elif(GLM_COMPILER & GLM_COMPILER_VC)
# pragma message("GLM: Visual C++ compiler detected") # pragma message("GLM: Visual C++ compiler detected")
# elif(GLM_COMPILER & GLM_COMPILER_CLANG)
# pragma message("GLM: Clang compiler detected")
# elif(GLM_COMPILER & GLM_COMPILER_LLVM_GCC)
# pragma message("GLM: LLVM GCC compiler detected")
# elif(GLM_COMPILER & GLM_COMPILER_GCC) # elif(GLM_COMPILER & GLM_COMPILER_GCC)
# pragma message("GLM: GCC compiler detected") # pragma message("GLM: GCC compiler detected")
# elif(GLM_COMPILER & GLM_COMPILER_BC) # elif(GLM_COMPILER & GLM_COMPILER_BC)

@ -17,6 +17,7 @@ http://glm.g-truc.net/glm-0.9.2.pdf
GLM 0.9.2.1: 2010-05-20 GLM 0.9.2.1: 2010-05-20
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
- Automatically detect CUDA support - Automatically detect CUDA support
- Improved Clang detection
- Fixed errors and warnings in VC with C++ extensions disabled - Fixed errors and warnings in VC with C++ extensions disabled
- Fixed and tested GLM_GTX_vector_angle - Fixed and tested GLM_GTX_vector_angle
- Fixed and tested GLM_GTX_rotate_vector - Fixed and tested GLM_GTX_rotate_vector

Loading…
Cancel
Save