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