mirror of https://github.com/AxioDL/metaforce.git
173 lines
5.0 KiB
Plaintext
173 lines
5.0 KiB
Plaintext
#include "MacOSSystemVersion.hpp"
|
|
#include <CoreFoundation/CoreFoundation.h>
|
|
#include <Foundation/Foundation.h>
|
|
|
|
#if !__has_feature(objc_arc)
|
|
#error ARC Required
|
|
#endif
|
|
|
|
void GetMacOSSystemVersion(int& major, int& minor, int& patch)
|
|
{
|
|
major = 0;
|
|
minor = 0;
|
|
patch = 0;
|
|
|
|
id pInfo = [NSProcessInfo processInfo];
|
|
if ([pInfo respondsToSelector:@selector(operatingSystemVersion)])
|
|
{
|
|
NSOperatingSystemVersion version = [pInfo operatingSystemVersion];
|
|
major = version.majorVersion;
|
|
minor = version.minorVersion;
|
|
patch = version.patchVersion;
|
|
}
|
|
else
|
|
{
|
|
major = 10;
|
|
if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_9_2)
|
|
{
|
|
minor = 9;
|
|
patch = 2;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_9_1)
|
|
{
|
|
minor = 9;
|
|
patch = 1;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_9)
|
|
{
|
|
minor = 9;
|
|
patch = 0;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_8_4)
|
|
{
|
|
minor = 8;
|
|
patch = 4;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_8_3)
|
|
{
|
|
minor = 8;
|
|
patch = 3;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_8_2)
|
|
{
|
|
minor = 8;
|
|
patch = 2;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_8_1)
|
|
{
|
|
minor = 8;
|
|
patch = 1;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_8)
|
|
{
|
|
minor = 8;
|
|
patch = 0;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_7_5)
|
|
{
|
|
minor = 7;
|
|
patch = 5;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_7_4)
|
|
{
|
|
minor = 7;
|
|
patch = 4;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_7_3)
|
|
{
|
|
minor = 7;
|
|
patch = 3;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_7_2)
|
|
{
|
|
minor = 7;
|
|
patch = 2;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_7_1)
|
|
{
|
|
minor = 7;
|
|
patch = 1;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_7)
|
|
{
|
|
minor = 7;
|
|
patch = 0;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_6_8)
|
|
{
|
|
minor = 6;
|
|
patch = 8;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_6_7)
|
|
{
|
|
minor = 6;
|
|
patch = 7;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_6_6)
|
|
{
|
|
minor = 6;
|
|
patch = 6;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_6_5)
|
|
{
|
|
minor = 6;
|
|
patch = 5;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_6_4)
|
|
{
|
|
minor = 6;
|
|
patch = 4;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_6_3)
|
|
{
|
|
minor = 6;
|
|
patch = 3;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_6_2)
|
|
{
|
|
minor = 6;
|
|
patch = 2;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_6_1)
|
|
{
|
|
minor = 6;
|
|
patch = 1;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_6)
|
|
{
|
|
minor = 6;
|
|
patch = 0;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_5)
|
|
{
|
|
minor = 5;
|
|
patch = 0;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_4)
|
|
{
|
|
minor = 4;
|
|
patch = 0;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_3)
|
|
{
|
|
minor = 3;
|
|
patch = 0;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_2)
|
|
{
|
|
minor = 2;
|
|
patch = 0;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_1)
|
|
{
|
|
minor = 1;
|
|
patch = 0;
|
|
}
|
|
else if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_0)
|
|
{
|
|
minor = 0;
|
|
patch = 0;
|
|
}
|
|
}
|
|
}
|