diff options
Diffstat (limited to 'objective-c/include/objc/Ice/Config.h')
-rw-r--r-- | objective-c/include/objc/Ice/Config.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/objective-c/include/objc/Ice/Config.h b/objective-c/include/objc/Ice/Config.h new file mode 100644 index 00000000000..203440a2325 --- /dev/null +++ b/objective-c/include/objc/Ice/Config.h @@ -0,0 +1,63 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +// +// Some import files we need almost everywhere +// +#import <Foundation/NSObject.h> +#import <Foundation/NSString.h> +#import <Foundation/NSArray.h> +#import <Foundation/NSDictionary.h> +#import <Foundation/NSData.h> +#import <Foundation/NSNull.h> + +#import <stdlib.h> + +#define ICE_DEPRECATED_API(msg) __attribute__((deprecated(msg))) +#define ICE_DECLSPEC_EXPORT __attribute__((visibility ("default"))) +#define ICE_DECLSPEC_IMPORT __attribute__((visibility ("default"))) + +#ifndef ICE_API +# ifdef ICE_API_EXPORTS +# define ICE_API ICE_DECLSPEC_EXPORT +# else +# define ICE_API ICE_DECLSPEC_IMPORT +# endif +#endif + +// +// Don't forget to update the conversion methods from Util.h if the types below +// are changed. +// +typedef unsigned char ICEByte; +typedef short ICEShort; +typedef int ICEInt; +#if defined(__x86_64) +typedef long ICELong; +#else +typedef long long ICELong; +#endif +typedef float ICEFloat; +typedef double ICEDouble; + +#if defined(__clang__) && __has_feature(objc_arc) +# define ICE_STRONG_QUALIFIER __strong +# define ICE_AUTORELEASING_QUALIFIER __autoreleasing +# define ICE_STRONG_ATTR strong +# define ICE_AUTORELEASE(v) v +# define ICE_RETAIN(v) v +# define ICE_RELEASE(v) +#else +# define ICE_STRONG_QUALIFIER +# define ICE_AUTORELEASING_QUALIFIER +# define ICE_STRONG_ATTR retain +# define ICE_AUTORELEASE(v) [v autorelease] +# define ICE_RETAIN(v) [v retain] +# define ICE_RELEASE(v) [v release] +#endif |