// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "appinfo.h" Q_GLOBAL_STATIC(Utils::AppInfo, sAppInfo) namespace Utils { const AppInfo &appInfo() { return *sAppInfo; } void Internal::setAppInfo(const AppInfo &info) { *sAppInfo = info; } QString compilerString() { #if defined(Q_CC_CLANG) // must be before GNU, because clang claims to be GNU too QString platformSpecific; #if defined(__apple_build_version__) // Apple clang has other version numbers platformSpecific = QLatin1String(" (Apple)"); #elif defined(Q_CC_MSVC) platformSpecific = QLatin1String(" (clang-cl)"); #endif return QLatin1String("Clang ") + QString::number(__clang_major__) + QLatin1Char('.') + QString::number(__clang_minor__) + platformSpecific; #elif defined(Q_CC_GNU) return QLatin1String("GCC ") + QLatin1String(__VERSION__); #elif defined(Q_CC_MSVC) if (_MSC_VER > 1999) return QLatin1String("MSVC "); if (_MSC_VER >= 1930) return QLatin1String("MSVC 2022"); if (_MSC_VER >= 1920) return QLatin1String("MSVC 2019"); if (_MSC_VER >= 1910) return QLatin1String("MSVC 2017"); if (_MSC_VER >= 1900) return QLatin1String("MSVC 2015"); #endif return QLatin1String(""); } } // namespace Utils