* @brief Get details of the Compiler Version from _MSC_VER, etc. * Infer the Visual Studio version */
| 40 | * Infer the Visual Studio version |
| 41 | */ |
| 42 | static String GetCompilerVersion() |
| 43 | { |
| 44 | String sVisualStudio = _T(""); |
| 45 | #ifdef _MSC_VER |
| 46 | #if _MSC_VER < 1800 |
| 47 | # error "** Unknown OLD Version of Visual Studio **" |
| 48 | #elif _MSC_VER == 1800 |
| 49 | sVisualStudio = _T("VS.2013 (12.0) - "); |
| 50 | #elif _MSC_VER == 1900 |
| 51 | sVisualStudio = _T("VS.2015 (14.0) - "); |
| 52 | #elif _MSC_VER == 1910 |
| 53 | sVisualStudio = _T("VS.2017 (15.0) - "); |
| 54 | #elif _MSC_VER == 1911 |
| 55 | sVisualStudio = _T("VS.2017 (15.3) - "); |
| 56 | #elif _MSC_VER >= 1912 && _MSC_VER < 1920 |
| 57 | sVisualStudio = strutils::format(_T("VS.2017 (15.%d) - "), 5 + (_MSC_VER - 1912)); |
| 58 | #elif _MSC_VER >= 1920 && _MSC_VER < 1930 |
| 59 | sVisualStudio = strutils::format(_T("VS.2019 (16.%d) - "), (_MSC_VER - 1920)); |
| 60 | #elif _MSC_VER >= 1930 && _MSC_VER < 1950 |
| 61 | sVisualStudio = strutils::format(_T("VS.2022 (17.%d) - "), (_MSC_VER - 1930)); |
| 62 | #elif _MSC_VER >= 1950 && _MSC_VER < 2000 |
| 63 | sVisualStudio = strutils::format(_T("VS.2026 (18.%d) - "), (_MSC_VER - 1950 + 1)); |
| 64 | #elif _MSC_VER >= 2000 |
| 65 | # error "** Unknown NEW Version of Visual Studio **" |
| 66 | #endif |
| 67 | #endif |
| 68 | |
| 69 | return strutils::format(_T("%sC/C++ Compiler %02i.%02i.%05i.%i"), |
| 70 | sVisualStudio, |
| 71 | (int)(_MSC_VER / 100), (int)(_MSC_VER % 100), (int)(_MSC_FULL_VER % 100000), _MSC_BUILD |
| 72 | ); |
| 73 | } |
| 74 | |
| 75 | static String maskUserNameInPath(const String& filePath) |
| 76 | { |