24 #import <AvailabilityMacros.h>
25 #import <Foundation/Foundation.h>
30 #define STRINGIZE2(id) # id
31 #define STRINGIZE(id) STRINGIZE2(id)
34 #ifdef BUNDLE_IDENTIFIER
44 static int mMajor = 10;
45 static int mMinor = 8;
46 static int mBugfix = 0;
48 static dispatch_once_t onceToken;
49 dispatch_once(&onceToken, ^{
50 NSString* versionString = [[NSDictionary dictionaryWithContentsOfFile:@"/System/Library/CoreServices/SystemVersion.plist"] objectForKey:@"ProductVersion"];
51 NSArray* versions = [versionString componentsSeparatedByString:@"."];
52 check( versions.count >= 2 );
53 if ( versions.count >= 1 ) {
54 mMajor = [[versions objectAtIndex:0] integerValue];
56 if ( versions.count >= 2 ) {
57 mMinor = [[versions objectAtIndex:1] integerValue];
59 if ( versions.count >= 3 ) {
60 mBugfix = [[versions objectAtIndex:2] integerValue];
void GetSystemVersion(int &major, int &minor, int &bugfix)
C++ interface to Cocoa implementation for getting bundle information.
static const char * BUNDLE_ID_STR