mirror of
https://github.com/g-truc/glm.git
synced 2024-11-26 18:24:35 +00:00
Updated GCC and Visual Studio version lists and messages
This commit is contained in:
parent
ecb326509a
commit
c7f863e0b4
284
glm/setup.hpp
284
glm/setup.hpp
@ -30,13 +30,13 @@
|
|||||||
|
|
||||||
//#define GLM_MESSAGE_QUIET 0x00000000
|
//#define GLM_MESSAGE_QUIET 0x00000000
|
||||||
//
|
//
|
||||||
//#define GLM_MESSAGE_WARNING 0x00000001
|
//#define GLM_MESSAGE_WARNING 0x00000001
|
||||||
//#define GLM_MESSAGE_NOTIFICATION 0x00000002
|
//#define GLM_MESSAGE_NOTIFICATION 0x00000002
|
||||||
//#define GLM_MESSAGE_CORE 0x00000004
|
//#define GLM_MESSAGE_CORE 0x00000004
|
||||||
//#define GLM_MESSAGE_EXTS 0x00000008
|
//#define GLM_MESSAGE_EXTS 0x00000008
|
||||||
//#define GLM_MESSAGE_SETUP 0x00000010
|
//#define GLM_MESSAGE_SETUP 0x00000010
|
||||||
//
|
//
|
||||||
//#define GLM_MESSAGE_ALL GLM_MESSAGE_WARNING | GLM_MESSAGE_NOTIFICATION | GLM_MESSAGE_CORE | GLM_MESSAGE_EXTS | GLM_MESSAGE_SETUP
|
//#define GLM_MESSAGE_ALL GLM_MESSAGE_WARNING | GLM_MESSAGE_NOTIFICATION | GLM_MESSAGE_CORE | GLM_MESSAGE_EXTS | GLM_MESSAGE_SETUP
|
||||||
|
|
||||||
//! By default:
|
//! By default:
|
||||||
// #define GLM_MESSAGE GLM_DISABLE
|
// #define GLM_MESSAGE GLM_DISABLE
|
||||||
@ -65,35 +65,43 @@
|
|||||||
|
|
||||||
// Visual C++ defines
|
// Visual C++ defines
|
||||||
#define GLM_COMPILER_VC 0x01000000
|
#define GLM_COMPILER_VC 0x01000000
|
||||||
#define GLM_COMPILER_VC2005 0x01000010
|
#define GLM_COMPILER_VC2 0x01000010
|
||||||
#define GLM_COMPILER_VC2008 0x01000020
|
#define GLM_COMPILER_VC4 0x01000020
|
||||||
#define GLM_COMPILER_VC2010 0x01000040
|
#define GLM_COMPILER_VC5 0x01000030
|
||||||
|
#define GLM_COMPILER_VC6 0x01000040
|
||||||
|
#define GLM_COMPILER_VC2002 0x01000050
|
||||||
|
#define GLM_COMPILER_VC2003 0x01000060
|
||||||
|
#define GLM_COMPILER_VC2005 0x01000070
|
||||||
|
#define GLM_COMPILER_VC2008 0x01000080
|
||||||
|
#define GLM_COMPILER_VC2010 0x01000090
|
||||||
|
|
||||||
// GCC defines
|
// GCC defines
|
||||||
#define GLM_COMPILER_GCC 0x02000000
|
#define GLM_COMPILER_GCC 0x02000000
|
||||||
#define GLM_COMPILER_GCC32 0x02000040
|
#define GLM_COMPILER_GCC30 0x02000010
|
||||||
#define GLM_COMPILER_GCC33 0x02000080
|
#define GLM_COMPILER_GCC31 0x02000020
|
||||||
#define GLM_COMPILER_GCC34 0x02000100
|
#define GLM_COMPILER_GCC32 0x02000030
|
||||||
#define GLM_COMPILER_GCC35 0x02000200
|
#define GLM_COMPILER_GCC33 0x02000040
|
||||||
#define GLM_COMPILER_GCC40 0x02000400
|
#define GLM_COMPILER_GCC34 0x02000050
|
||||||
#define GLM_COMPILER_GCC41 0x02000800
|
#define GLM_COMPILER_GCC35 0x02000060
|
||||||
#define GLM_COMPILER_GCC42 0x02001000
|
#define GLM_COMPILER_GCC40 0x02000070
|
||||||
#define GLM_COMPILER_GCC43 0x02002000
|
#define GLM_COMPILER_GCC41 0x02000080
|
||||||
#define GLM_COMPILER_GCC44 0x02004000
|
#define GLM_COMPILER_GCC42 0x02000090
|
||||||
#define GLM_COMPILER_GCC45 0x02008000
|
#define GLM_COMPILER_GCC43 0x020000A0
|
||||||
#define GLM_COMPILER_GCC46 0x02010000
|
#define GLM_COMPILER_GCC44 0x020000B0
|
||||||
#define GLM_COMPILER_GCC47 0x02020000
|
#define GLM_COMPILER_GCC45 0x020000C0
|
||||||
#define GLM_COMPILER_GCC48 0x02040000
|
#define GLM_COMPILER_GCC46 0x020000D0
|
||||||
#define GLM_COMPILER_GCC49 0x02080000
|
#define GLM_COMPILER_GCC47 0x020000E0
|
||||||
#define GLM_COMPILER_GCC50 0x02100000
|
#define GLM_COMPILER_GCC48 0x020000F0
|
||||||
|
#define GLM_COMPILER_GCC49 0x02000100
|
||||||
|
#define GLM_COMPILER_GCC50 0x02000200
|
||||||
|
|
||||||
// Borland C++ defines. How to identify BC?
|
// Borland C++ defines. How to identify BC?
|
||||||
#define GLM_COMPILER_BC 0x03000000
|
#define GLM_COMPILER_BC 0x03000000
|
||||||
#define GLM_COMPILER_BCB4 0x03000400
|
#define GLM_COMPILER_BCB4 0x03000100
|
||||||
#define GLM_COMPILER_BCB5 0x03000800
|
#define GLM_COMPILER_BCB5 0x03000200
|
||||||
#define GLM_COMPILER_BCB6 0x03001000
|
#define GLM_COMPILER_BCB6 0x03000300
|
||||||
//#define GLM_COMPILER_BCBX 0x03002000 // What's the version value?
|
//#define GLM_COMPILER_BCBX 0x03000400 // What's the version value?
|
||||||
#define GLM_COMPILER_BCB2009 0x03004000
|
#define GLM_COMPILER_BCB2009 0x03000500
|
||||||
|
|
||||||
#define GLM_MODEL_32 0x00000010
|
#define GLM_MODEL_32 0x00000010
|
||||||
#define GLM_MODEL_64 0x00000020
|
#define GLM_MODEL_64 0x00000020
|
||||||
@ -101,94 +109,88 @@
|
|||||||
#ifndef GLM_COMPILER
|
#ifndef GLM_COMPILER
|
||||||
|
|
||||||
// CodeWarrior
|
// CodeWarrior
|
||||||
#define GLM_COMPILER_CODEWARRIOR 0x04000000
|
#define GLM_COMPILER_CODEWARRIOR 0x04000000
|
||||||
|
|
||||||
/////////////////
|
|
||||||
// Visual C++ //
|
|
||||||
|
|
||||||
|
// Visual C++
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
|
# if _MSC_VER == 900
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_VC2
|
||||||
|
# elif _MSC_VER == 1000
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_VC4
|
||||||
|
# elif _MSC_VER == 1100
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_VC5
|
||||||
|
# elif _MSC_VER == 1200
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_VC6
|
||||||
|
# elif _MSC_VER == 1300
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_VC2002
|
||||||
|
# elif _MSC_VER == 1310
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_VC2003
|
||||||
|
# elif _MSC_VER == 1400
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_VC2005
|
||||||
|
# elif _MSC_VER == 1500
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_VC2008
|
||||||
|
# elif _MSC_VER == 1600
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_VC2010
|
||||||
|
# else//_MSC_VER
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_VC
|
||||||
|
# endif//_MSC_VER
|
||||||
|
|
||||||
#if defined(_M_X64)
|
// G++
|
||||||
#define GLM_MODEL GLM_MODEL_64
|
|
||||||
#else
|
|
||||||
#define GLM_MODEL GLM_MODEL_32
|
|
||||||
#endif//_WIN64
|
|
||||||
|
|
||||||
#if _MSC_VER == 1400
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_VC2005
|
|
||||||
#elif _MSC_VER == 1500
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_VC2008
|
|
||||||
#elif _MSC_VER == 1600
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_VC2010
|
|
||||||
#else//_MSC_VER
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_VC
|
|
||||||
#endif//_MSC_VER
|
|
||||||
|
|
||||||
//////////////////
|
|
||||||
// GCC defines //
|
|
||||||
|
|
||||||
#elif defined(__GNUC__)
|
#elif defined(__GNUC__)
|
||||||
|
# if (__GNUC__ == 3) && (__GNUC_MINOR__ == 2)
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_GCC32
|
||||||
|
# elif (__GNUC__ == 3) && (__GNUC_MINOR__ == 3)
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_GCC33
|
||||||
|
# elif (__GNUC__ == 3) && (__GNUC_MINOR__ == 4)
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_GCC34
|
||||||
|
# elif (__GNUC__ == 3) && (__GNUC_MINOR__ == 5)
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_GCC35
|
||||||
|
# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 0)
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_GCC40
|
||||||
|
# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 1)
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_GCC41
|
||||||
|
# elif (__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
|
||||||
|
# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_GCC46
|
||||||
|
# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 7)
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_GCC47
|
||||||
|
# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
|
||||||
|
# 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
|
||||||
|
# else
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_GCC
|
||||||
|
# endif
|
||||||
|
|
||||||
#if(defined(__WORDSIZE) && (__WORDSIZE == 64)) || defined(__arch64__) || defined(__LP64__)
|
// Borland C++
|
||||||
#define GLM_MODEL GLM_MODEL_64
|
|
||||||
#else
|
|
||||||
#define GLM_MODEL GLM_MODEL_32
|
|
||||||
#endif//
|
|
||||||
|
|
||||||
#if (__GNUC__ == 3) && (__GNUC_MINOR__ == 2)
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_GCC32
|
|
||||||
#elif (__GNUC__ == 3) && (__GNUC_MINOR__ == 3)
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_GCC33
|
|
||||||
#elif (__GNUC__ == 3) && (__GNUC_MINOR__ == 4)
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_GCC34
|
|
||||||
#elif (__GNUC__ == 3) && (__GNUC_MINOR__ == 5)
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_GCC35
|
|
||||||
#elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 0)
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_GCC40
|
|
||||||
#elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 1)
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_GCC41
|
|
||||||
#elif (__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
|
|
||||||
#elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_GCC46
|
|
||||||
#elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 7)
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_GCC47
|
|
||||||
#elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
|
|
||||||
#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
|
|
||||||
#else
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_GCC
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined(_BORLANDC_)
|
#elif defined(_BORLANDC_)
|
||||||
|
# if defined(VER125)
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_BCB4
|
||||||
|
# elif defined(VER130)
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_BCB5
|
||||||
|
# elif defined(VER140)
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_BCB6
|
||||||
|
# elif defined(VER200)
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_BCB2009
|
||||||
|
# else
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_BC
|
||||||
|
# endif
|
||||||
|
|
||||||
#if defined(VER125)
|
// Codewarrior
|
||||||
#define GLM_COMPILER GLM_COMPILER_BCB4
|
|
||||||
#elif defined(VER130)
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_BCB5
|
|
||||||
#elif defined(VER140)
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_BCB6
|
|
||||||
#elif defined(VER200)
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_BCB2009
|
|
||||||
#else
|
|
||||||
#define GLM_COMPILER GLM_COMPILER_BC
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined(__MWERKS__)
|
#elif defined(__MWERKS__)
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_CODEWARRIOR
|
||||||
#define GLM_COMPILER GLM_COMPILER_CODEWARRIOR
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#define GLM_COMPILER GLM_COMPILER_UNKNOWNED
|
# define GLM_COMPILER GLM_COMPILER_UNKNOWNED
|
||||||
#endif//__GNUC__
|
#endif//__GNUC__
|
||||||
|
|
||||||
#endif//GLM_COMPILER
|
#endif//GLM_COMPILER
|
||||||
@ -197,10 +199,58 @@
|
|||||||
#error "GLM_COMPILER undefined, your compiler may not be supported by GLM. Add #define GLM_COMPILER 0 to ignore this message."
|
#error "GLM_COMPILER undefined, your compiler may not be supported by GLM. Add #define GLM_COMPILER 0 to ignore this message."
|
||||||
#endif//GLM_COMPILER
|
#endif//GLM_COMPILER
|
||||||
|
|
||||||
|
// Report compiler detection
|
||||||
|
#if(defined(GLM_MESSAGE) && (GLM_MESSAGE == GLM_ENABLE))
|
||||||
|
# ifndef GLM_MESSAGE_COMPILER_DISPLAYED
|
||||||
|
# define GLM_MESSAGE_COMPILER_DISPLAYED
|
||||||
|
# if(defined(GLM_COMPILER) && GLM_COMPILER & GLM_COMPILER_VC)
|
||||||
|
# pragma message("GLM: Visual C++ compiler detected")
|
||||||
|
# elif(defined(GLM_COMPILER) && GLM_COMPILER & GLM_COMPILER_GCC)
|
||||||
|
# pragma message("GLM: GCC compiler detected")
|
||||||
|
# elif(defined(GLM_COMPILER) && GLM_COMPILER & GLM_COMPILER_BC)
|
||||||
|
# pragma message("GLM: Borland compiler detected but not supported")
|
||||||
|
# elif(defined(GLM_COMPILER) && GLM_COMPILER & GLM_COMPILER_CODEWARRIOR)
|
||||||
|
# pragma message("GLM: Codewarrior compiler detected but not supported")
|
||||||
|
# else
|
||||||
|
# pragma message("GLM: Compiler not detected")
|
||||||
|
# endif
|
||||||
|
# endif//GLM_MESSAGE_COMPILER_DISPLAYED
|
||||||
|
#endif//GLM_MESSAGE
|
||||||
|
|
||||||
|
/////////////////
|
||||||
|
// Build model //
|
||||||
|
|
||||||
|
#if(GLM_COMPILER & GLM_COMPILER_VC)
|
||||||
|
# if defined(_M_X64)
|
||||||
|
# define GLM_MODEL GLM_MODEL_64
|
||||||
|
# else
|
||||||
|
# define GLM_MODEL GLM_MODEL_32
|
||||||
|
# endif//_M_X64
|
||||||
|
#elif(GLM_COMPILER & GLM_COMPILER_GCC)
|
||||||
|
# if(defined(__WORDSIZE) && (__WORDSIZE == 64)) || defined(__arch64__) || defined(__LP64__)
|
||||||
|
# define GLM_MODEL GLM_MODEL_64
|
||||||
|
# else
|
||||||
|
# define GLM_MODEL GLM_MODEL_32
|
||||||
|
# endif//
|
||||||
|
#else
|
||||||
|
# define GLM_MODEL GLM_MODEL_32
|
||||||
|
#endif//
|
||||||
|
|
||||||
#if(!defined(GLM_MODEL) && GLM_COMPILER != 0)
|
#if(!defined(GLM_MODEL) && GLM_COMPILER != 0)
|
||||||
#error "GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message."
|
#error "GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message."
|
||||||
#endif//GLM_MODEL
|
#endif//GLM_MODEL
|
||||||
|
|
||||||
|
#if(defined(GLM_MESSAGE) && (GLM_MESSAGE == GLM_ENABLE)))
|
||||||
|
# ifndef GLM_MESSAGE_MODEL_DISPLAYED
|
||||||
|
# define GLM_MESSAGE_MODEL_DISPLAYED
|
||||||
|
# if(GLM_MODEL == GLM_MODEL_64)
|
||||||
|
# pragma message("GLM: 64 bits model")
|
||||||
|
# elif(GLM_MODEL == GLM_MODEL_32)
|
||||||
|
# pragma message("GLM: 32 bits model")
|
||||||
|
# endif//GLM_MODEL
|
||||||
|
# endif//GLM_MESSAGE_MODEL_DISPLAYED
|
||||||
|
#endif//GLM_MESSAGE
|
||||||
|
|
||||||
/////////////////
|
/////////////////
|
||||||
// C++ Version //
|
// C++ Version //
|
||||||
|
|
||||||
@ -215,25 +265,15 @@
|
|||||||
# define GLM_LANG GLM_LANG_CPP98
|
# define GLM_LANG GLM_LANG_CPP98
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/////////////
|
#if(defined(GLM_MESSAGE) && (GLM_MESSAGE == GLM_ENABLE)))
|
||||||
// Message //
|
# ifndef GLM_MESSAGE_LANG_DISPLAYED
|
||||||
|
# define GLM_MESSAGE_LANG_DISPLAYED
|
||||||
#if(defined(GLM_MESSAGE) && (GLM_MESSAGE & (GLM_MESSAGE_SETUP | GLM_MESSAGE_NOTIFICATION)))
|
# if(GLM_LANG == GLM_LANG_CPP98)
|
||||||
# if(defined(GLM_COMPILER) && GLM_COMPILER & GLM_COMPILER_VC)
|
# pragma message("GLM: C++98")
|
||||||
# pragma message("GLM message: Compiled with Visual C++")
|
# elif(GLM_LANG == GLM_LANG_CPP0X)
|
||||||
# elif(defined(GLM_COMPILER) && GLM_COMPILER & GLM_COMPILER_GCC)
|
# pragma message("GLM: C++0x")
|
||||||
# pragma message("GLM message: Compiled with GCC")
|
# endif//GLM_MODEL
|
||||||
# else
|
# endif//GLM_MESSAGE_MODEL_DISPLAYED
|
||||||
# pragma message("GLM warning: Compiler not detected")
|
|
||||||
# endif
|
|
||||||
#endif//GLM_MESSAGE
|
|
||||||
|
|
||||||
#if(defined(GLM_MESSAGE) && (GLM_MESSAGE & (GLM_MESSAGE_SETUP | GLM_MESSAGE_NOTIFICATION)))
|
|
||||||
# if(GLM_MODEL == GLM_MODEL_64)
|
|
||||||
# pragma message("GLM message: 64 bits model")
|
|
||||||
# elif(GLM_MODEL == GLM_MODEL_32)
|
|
||||||
# pragma message("GLM message: 32 bits model")
|
|
||||||
# endif//GLM_MODEL
|
|
||||||
#endif//GLM_MESSAGE
|
#endif//GLM_MESSAGE
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
Loading…
Reference in New Issue
Block a user