125 const auto retVer = [] (
const QString& version)
128 return OSInfo { .Arch_ =
"x86_64", .Name_ =
"Mac OS X", .Version_ = version };
131 for (
auto minor = 7; minor < 16; ++minor)
132 if (QSysInfo::MacintoshVersion == Q_MV_OSX (10, minor))
133 return retVer (
"10." + QString::number (minor));
135 return retVer (
"Unknown version");
136#elif defined(Q_OS_WIN32)
137 const auto retVer = [] (
const QString& version)
141 .Arch_ = QSysInfo::WordSize == 64 ?
"x86_64" :
"x86",
147 switch (QSysInfo::WindowsVersion)
149 case QSysInfo::WV_95:
150 return retVer (
"95");
151 case QSysInfo::WV_98:
152 return retVer (
"98");
153 case QSysInfo::WV_Me:
154 return retVer (
"Me");
155 case QSysInfo::WV_DOS_based:
156 return retVer (
"9x/Me");
157 case QSysInfo::WV_NT:
158 return retVer (
"NT 4.x");
159 case QSysInfo::WV_2000:
160 return retVer (
"2000");
161 case QSysInfo::WV_XP:
162 return retVer (
"XP");
163 case QSysInfo::WV_2003:
164 return retVer (
"2003");
165 case QSysInfo::WV_VISTA:
166 return retVer (
"Vista");
167 case QSysInfo::WV_WINDOWS7:
172 return retVer (
"8.1");
174 return retVer (
"10");
175 case QSysInfo::WV_NT_based:
176 return retVer (
"NT-based");
180 if (osName.isEmpty ())
182 if (osName.isEmpty ())
193 .Name_ = osName.isEmpty () ? u.sysname : osName,
194 .Version_ = QString (
"%1 %2 %3").arg (u.machine, u.release, u.version),
195 .Flavour_ = u.sysname,
199 return { .Arch_ =
"Unknown arch", .Name_ =
"Unknown OS", .Version_ =
"Unknown version", .Flavour_ = {} };