OSDN Git Service

Added support for Visual Studio 2019.5 (v16.5) + simplified detection for newer versi...
[mutilities/MUtilities.git] / include / MUtils / Version.h
index 1c99379..1d4cb79 100644 (file)
@@ -1,6 +1,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 // MuldeR's Utilities for Qt
-// Copyright (C) 2004-2016 LoRd_MuldeR <MuldeR2@GMX.de>
+// Copyright (C) 2004-2019 LoRd_MuldeR <MuldeR2@GMX.de>
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -49,92 +49,116 @@ namespace MUtils
                //Compiler detection
                static const char *const compiler_version(void)
                {
-                       #if defined(__INTEL_COMPILER)
-                               #if (__INTEL_COMPILER >= 1500)
-                                       static const char *const COMPILER_VERS = "ICL 15." MUTILS_MAKE_STRING(__INTEL_COMPILER_BUILD_DATE);
-                               #elif (__INTEL_COMPILER >= 1400)
-                                       static const char *const COMPILER_VERS = "ICL 14." MUTILS_MAKE_STRING(__INTEL_COMPILER_BUILD_DATE);
-                               #elif (__INTEL_COMPILER >= 1300)
-                                       static const char *const COMPILER_VERS = "ICL 13." MUTILS_MAKE_STRING(__INTEL_COMPILER_BUILD_DATE);
-                               #elif (__INTEL_COMPILER >= 1200)
-                                       static const char *const COMPILER_VERS = "ICL 12." MUTILS_MAKE_STRING(__INTEL_COMPILER_BUILD_DATE);
-                               #elif (__INTEL_COMPILER >= 1100)
-                                       static const char *const COMPILER_VERS = "ICL 11.x";
-                               #elif (__INTEL_COMPILER >= 1000)
-                                       static const char *const COMPILER_VERS = "ICL 10.x";
-                               #else
-                                       #error Compiler is not supported!
-                               #endif
-                       #elif defined(_MSC_VER)
-                               #if (_MSC_VER == 1900)
-                                       #if (_MSC_FULL_VER == 190023026)
-                                               static const char *const COMPILER_VERS = "MSVC 2015";
-                                       #elif (_MSC_FULL_VER == 190023506)
-                                               static const char *const COMPILER_VERS = "MSVC 2015.1";
-                                       #else
-                                               #error Compiler version is not supported yet!
-                                       #endif
-                               #elif (_MSC_VER == 1800)
-                                       #if (_MSC_FULL_VER == 180021005)
-                                               static const char *const COMPILER_VERS = "MSVC 2013";
-                                       #elif (_MSC_FULL_VER == 180030501)
-                                               static const char *const COMPILER_VERS = "MSVC 2013.2";
-                                       #elif (_MSC_FULL_VER == 180030723)
-                                               static const char *const COMPILER_VERS = "MSVC 2013.3";
-                                       #elif (_MSC_FULL_VER == 180031101)
-                                               static const char *const COMPILER_VERS = "MSVC 2013.4";
-                                       #elif (_MSC_FULL_VER == 180040629)
-                                               static const char *const COMPILER_VERS = "MSVC 2013.5";
-                                       #else
-                                               #error Compiler version is not supported yet!
-                                       #endif
-                               #elif (_MSC_VER == 1700)
-                                       #if (_MSC_FULL_VER == 170050727)
-                                               static const char *const COMPILER_VERS = "MSVC 2012";
-                                       #elif (_MSC_FULL_VER == 170051106)
-                                               static const char *const COMPILER_VERS = "MSVC 2012.1";
-                                       #elif (_MSC_FULL_VER == 170060315)
-                                               static const char *const COMPILER_VERS = "MSVC 2012.2";
-                                       #elif (_MSC_FULL_VER == 170060610)
-                                               static const char *const COMPILER_VERS = "MSVC 2012.3";
-                                       #elif (_MSC_FULL_VER == 170061030)
-                                               static const char *const COMPILER_VERS = "MSVC 2012.4";
+                       static const char *const COMPILER_VERS =
+                               #if defined(__INTEL_COMPILER)
+                                       #if (__INTEL_COMPILER >= 1500)
+                                               "ICL 15." MUTILS_MAKE_STRING(__INTEL_COMPILER_BUILD_DATE);
+                                       #elif (__INTEL_COMPILER >= 1400)
+                                               "ICL 14." MUTILS_MAKE_STRING(__INTEL_COMPILER_BUILD_DATE);
+                                       #elif (__INTEL_COMPILER >= 1300)
+                                               "ICL 13." MUTILS_MAKE_STRING(__INTEL_COMPILER_BUILD_DATE);
+                                       #elif (__INTEL_COMPILER >= 1200)
+                                               "ICL 12." MUTILS_MAKE_STRING(__INTEL_COMPILER_BUILD_DATE);
+                                       #elif (__INTEL_COMPILER >= 1100)
+                                               "ICL 11.x";
+                                       #elif (__INTEL_COMPILER >= 1000)
+                                               "ICL 10.x";
                                        #else
-                                               #error Compiler version is not supported yet!
+                                               #error Compiler is not supported!
                                        #endif
-                               #elif (_MSC_VER == 1600)
-                                       #if (_MSC_FULL_VER >= 160040219)
-                                               static const char *const COMPILER_VERS = "MSVC 2010-SP1";
+                               #elif defined(_MSC_VER)
+                                       #if (_MSC_VER == 1925)
+                                               "MSVC 2019.5";
+                                       #elif (_MSC_VER == 1924)
+                                               "MSVC 2019.4";
+                                       #elif (_MSC_VER == 1923)
+                                               "MSVC 2019.3";
+                                       #elif (_MSC_VER == 1922)
+                                               "MSVC 2019.2";
+                                       #elif (_MSC_VER == 1921)
+                                               "MSVC 2019.1";
+                                       #elif (_MSC_VER == 1920)
+                                               "MSVC 2019.0";
+                                       #elif (_MSC_VER == 1916)
+                                               "MSVC 2017.9";
+                                       #elif (_MSC_VER == 1915)
+                                               "MSVC 2017.8";
+                                       #elif (_MSC_VER == 1914)
+                                               "MSVC 2017.7";
+                                       #elif (_MSC_VER == 1913)
+                                               "MSVC 2017.6";
+                                       #elif (_MSC_VER == 1912)
+                                               "MSVC 2017.5";
+                                       #elif (_MSC_VER == 1911)
+                                               "MSVC 2017.4";
+                                       #elif (_MSC_VER == 1910)
+                                               "MSVC 2017.2";
+                                       #elif (_MSC_VER == 1900)
+                                               #if (_MSC_FULL_VER == 190023026)
+                                                       "MSVC 2015";
+                                               #elif (_MSC_FULL_VER == 190023506)
+                                                       "MSVC 2015.1";
+                                               #elif (_MSC_FULL_VER == 190023918)
+                                                       "MSVC 2015.2";
+                                               #elif (_MSC_FULL_VER == 190024210) || (_MSC_FULL_VER == 190024215)
+                                                       "MSVC 2015.3";
+                                               #else
+                                                       #error Compiler version is not supported yet!
+                                               #endif
+                                       #elif (_MSC_VER == 1800)
+                                               #if (_MSC_FULL_VER == 180021005)
+                                                       "MSVC 2013";
+                                               #elif (_MSC_FULL_VER == 180030501)
+                                                       "MSVC 2013.2";
+                                               #elif (_MSC_FULL_VER == 180030723)
+                                                       "MSVC 2013.3";
+                                               #elif (_MSC_FULL_VER == 180031101)
+                                                       "MSVC 2013.4";
+                                               #elif (_MSC_FULL_VER == 180040629)
+                                                       "MSVC 2013.5";
+                                               #else
+                                                       #error Compiler version is not supported yet!
+                                               #endif
+                                       #elif (_MSC_VER == 1700)
+                                               #if (_MSC_FULL_VER == 170050727)
+                                                       "MSVC 2012";
+                                               #elif (_MSC_FULL_VER == 170051106)
+                                                       "MSVC 2012.1";
+                                               #elif (_MSC_FULL_VER == 170060315)
+                                                       "MSVC 2012.2";
+                                               #elif (_MSC_FULL_VER == 170060610)
+                                                       "MSVC 2012.3";
+                                               #elif (_MSC_FULL_VER == 170061030)
+                                                       "MSVC 2012.4";
+                                               #else
+                                                       #error Compiler version is not supported yet!
+                                               #endif
+                                       #elif (_MSC_VER == 1600)
+                                               #if (_MSC_FULL_VER >= 160040219)
+                                                       "MSVC 2010-SP1";
+                                               #else
+                                                       "MSVC 2010";
+                                               #endif
                                        #else
-                                               static const char *const COMPILER_VERS = "MSVC 2010";
-                                       #endif
-                               #elif (_MSC_VER == 1500)
-                                       #if (_MSC_FULL_VER >= 150030729)
-                                               static const char *const COMPILER_VERS = "MSVC 2008-SP1";
-                                       #else
-                                               static const char *const COMPILER_VERS = "MSVC 2008";
+                                               #error Compiler is not supported!
                                        #endif
                                #else
                                        #error Compiler is not supported!
                                #endif
-                       #else
-                               #error Compiler is not supported!
-                       #endif
-
                        return COMPILER_VERS;
                }
 
                //Architecture detection
                static const char *const compiler_arch(void)
                {
-                       #if defined(_M_X64)
-                               static const char *const COMPILER_ARCH = "x64";
-                       #elif defined(_M_IX86)
-                               static const char *const COMPILER_ARCH = "x86";
-                       #else
-                               #error Architecture is not supported!
-                       #endif
-
+                       static const char *const COMPILER_ARCH =
+                               #if defined(_M_X64)
+                                       "x64";
+                               #elif defined(_M_IX86)
+                                       "x86";
+                               #else
+                                       #error Architecture is not supported!
+                               #endif
                        return COMPILER_ARCH;
                }