aboutsummaryrefslogtreecommitdiff
path: root/Foundation/GTMSystemVersion.h
blob: 7147730dd34d7f680dd36b88d9e1a79d4b4a1a90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//
//  GTMSystemVersion.h
//
//  Copyright 2007-2008 Google Inc.
//
//  Licensed under the Apache License, Version 2.0 (the "License"); you may not
//  use this file except in compliance with the License.  You may obtain a copy
//  of the License at
//
//  http://www.apache.org/licenses/LICENSE-2.0
//
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
//  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
//  License for the specific language governing permissions and limitations under
//  the License.
//

#import <Foundation/Foundation.h>
#import "GTMDefines.h"

// A class for getting information about what system we are running on
NS_DEPRECATED(10_0, 10_10, 1_0, 8_0, "Use NSProcessInfo.operatingSystemVersion.")
@interface GTMSystemVersion : NSObject

// Returns the current system version major.minor.bugFix
+ (void)getMajor:(SInt32*)major minor:(SInt32*)minor bugFix:(SInt32*)bugFix;

// Returns the build number of the OS. Useful when looking for bug fixes
// in new OSes which all have a set system version.
// eg 10.5.5's build number is 9F33. Easy way to check the build number
// is to choose "About this Mac" from the Apple menu and click on the version
// number.
+ (NSString*)build;

+ (BOOL)isBuildLessThan:(NSString*)build;
+ (BOOL)isBuildLessThanOrEqualTo:(NSString*)build;
+ (BOOL)isBuildGreaterThan:(NSString*)build;
+ (BOOL)isBuildGreaterThanOrEqualTo:(NSString*)build;
+ (BOOL)isBuildEqualTo:(NSString *)build;

#if GTM_MACOS_SDK
// Returns YES if running on 10.3, NO otherwise.
+ (BOOL)isPanther;

// Returns YES if running on 10.4, NO otherwise.
+ (BOOL)isTiger;

// Returns YES if running on 10.5, NO otherwise.
+ (BOOL)isLeopard;

// Returns YES if running on 10.6, NO otherwise.
+ (BOOL)isSnowLeopard;

// Returns a YES/NO if the system is 10.3 or better
+ (BOOL)isPantherOrGreater;

// Returns a YES/NO if the system is 10.4 or better
+ (BOOL)isTigerOrGreater;

// Returns a YES/NO if the system is 10.5 or better
+ (BOOL)isLeopardOrGreater;

// Returns a YES/NO if the system is 10.6 or better
+ (BOOL)isSnowLeopardOrGreater;
#endif  // GTM_MACOS_SDK

// Returns one of the achitecture strings below. Note that this is the
// architecture that we are currently running as, not the hardware architecture.
+ (NSString *)runtimeArchitecture;
@end

// Architecture Strings
// TODO: Should probably break iPhone up into iPhone_ARM and iPhone_Simulator
//       but haven't found a need yet.
GTM_EXTERN NSString *const kGTMArch_iPhone;
GTM_EXTERN NSString *const kGTMArch_ppc;
GTM_EXTERN NSString *const kGTMArch_ppc64;
GTM_EXTERN NSString *const kGTMArch_x86_64;
GTM_EXTERN NSString *const kGTMArch_i386;